2013-10-17 2 views
1

javascript를 사용하여 내 셰어 포인트 목록에 새 항목을 추가하고 싶습니다. MSDN의 코드를 그대로 사용했지만 작동하지 않습니다. 그래서 문제가 아 파크 있다고 생각 javascript의 셰어 포인트 목록에 새 항목 추가

var siteUrl = 'http://units.mil.intra/sites/DGHR/h/default.aspx'; 

    function createListItem() { 
     alert('in function '); 
     var clientContext = new SP.ClientContext(siteUrl); 
     alert('before oList'); 
     var oList = clientContext.get_web().get_lists().getByTitle('TestPostModification'); 
     alert('after oList'); 
     var itemCreateInfo = new SP.ListItemCreationInformation(); 
     this.oListItem = oList.addItem(itemCreateInfo); 

     oListItem.set_item('Title', 'Item from de Hrnode!'); 

     oListItem.update(); 

     clientContext.load(oListItem); 

     clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); 
    } 

    function onQuerySucceeded() { 

     alert('Item created: ' + oListItem.get_id()); 
    } 

    function onQueryFailed(sender, args) { 

     alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 
    } 

내가 첫 번째 경고를 얻을,하지만 난 alert('before oList');를하지 않는 : 나는 문제가이 같은 경고를 설정할 때 때문에이 선언 SITEURL 아 파크 생각

var clientContext = new SP.ClientContext(siteUrl); 

나를 도와 줄 수 있습니까?

ps : siteUrl은 (는) 인트라넷 사이트에 있으므로 사용자 위치에서 연결할 수 없습니다.

+0

''oList'보다 먼저 도착하지 않으면'ClientContext'를 선언 한 후 콘솔 오류가 무엇입니까? 당신이 그것을 선언 할 때,'var clientContext = ..','console.log (clientContext);'결과는'undefined'입니까? – MackieeE

답변

0

다음을 추가하십시오 : 코드

+0

그리고 sp.js는 어디에서 찾을 수 있습니까? – Bigjo

+0

sharepoint 2010에 있습니다. 이 코드를 추가하면됩니다. –

0

내가 siteURL 페이지를 포함 할 수 없습니다 때문에 그것이 생각 실행하기 전에

ExecuteOrDelayUntilScriptLoaded(createListItem() ,"sp.js"); 

스크립트 "sp.js을"로드해야합니다. 따라서 http://units.mil.intra/sites/DGHR/h/이어야합니다 (웹 사이트의 루트 디렉토리를 의미).

팁 : 웹 콘솔을 사용하여 Firefox 또는 Chrome으로 코드를 디버깅하거나 Firebug for Firefox와 같은 애드온을 설치할 수 있습니다. alert()을 사용할 필요가 없으며 console.log()은 유용한 정보를 제공합니다.

네이티브 방식으로 사용하는 것은 매우 어렵고 "꽤"사용하기가 어렵습니다. jQuery를 사용하는 것이 문제가 아니라면 SPServices 또는 SharepointPlus과 같은 세 번째 라이브러리를 사용하는 것이 좋습니다. 예를 들어 SharepointPlus에서 코드는 다음과 같이됩니다 :

// if your code runs somewhere under this website, then you don't need to provide the URL 
var siteUrl = 'http://units.mil.intra/sites/DGHR/h/'; 

$SP().list("TestPostModification", siteUrl).add({Title:"Item from de Hrnode!"}, { 
    success:function(items) { 
    if (items.length === 1) alert("Item created: "+items[0].ID) 
    }, 
    error:function(items) { 
    if (items.length > 0) alert("Request failed: "+items[0].errorMessage) 
    } 
}) 
관련 문제