【SharePoint Online】ページ遷移後にJavaScript クライアント オブジェクト モデル(SP.context)を利用する。【JSOM】

2019年6月29日

こんにちは。
先日仕事でSPOをいじってたときのこと、、、
何故かJSOMが利用できなく、対策にかなりの時間がかかってしまいました。。。
ですので今回悔しいので記事にしてやろうと思います。(笑)

事象発生状況

1.フォームに画面遷移の発生するスクリプトを実装
2.新たに開かれた画面で、$(document).readyを待ってアイテム情報を取得する
→エラー!!!

sp.jsが読み込まれていないじゃないか・・・

色々調べていくと、スクリプト実行時にsp.jsがロードされていなかったことが原因でした。
すごい初歩的なミスのようですねこれ・・・

更に色々調べていくと、SPO上で指定したスクリプトファイルを読み込んだ後に、
自分の関数を読み込むというメソッドを発見しました。
それを利用して”sp.js”を読み込んだ後に自身の関数を読み込むようにしたものが以下です。

SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function(){
  MY Function!!
  });

これだけで事象は改善されました。
蓋を開けてみれば簡単なお話でした。

sp.jsを読み込む前に自身の関数を呼び出す

逆にsp.jsを読み込む前に自身の関数を呼び出す場合は、以下のように記述するようです。

SP.SOD.executeOrDelayUntilScriptLoaded(My Function!!, "sp.js");

こちらもメソッドが用意されていて非常に快適です。

今回もちょっと簡単な記事になりましたがここらへんにしておこうかと思います。


それではまた。