1

JavaScript を使用して、SharePoint リストに新しい項目を追加したいと考えています。MSDN から直接コードを使用しましたが、機能しません。次のようなアラートを設定すると、問題は宣言する siteUrl にあると思います。

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');な問題があると思います。

var clientContext = new SP.ClientContext(siteUrl);

誰かが私を助けてくれますか?

ps: siteUrl はイントラネット サイトにあるため、現在の場所からアクセスすることはできません。

4

3 に答える 3

0

siteURLページを含めてはならないためだと思います。そうあるべきですhttp://units.mil.intra/sites/DGHR/h/(あなたのウェブサイトのルートディレクトリを意味します)。

ヒント: Web コンソールを使用して、Firefox または Chrome でコードをデバッグするか、Firefox 用の Firebug などのアドオンをインストールできます。を使用する必要はなく、より有用な情報alert()を提供します。console.log()

また、それを行うためのネイティブな方法は、使用が非常に難しく、「きれい」ではありません。jQuery の使用が問題にならない場合は、SPServicesSharepointPlusなどの 3 番目のライブラリを使用することをお勧めします。たとえば、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)
  }
})
于 2013-10-18T08:29:13.233 に答える