2012年11月29日 (木)

[TIPS] クライアント オブジェクト モデルをページロード時に呼び出す

SharePoint 上のページに JavaScript Object Model を使ったコードを実装する場合、ページ ロード時に関数を呼び出したいことがあります。

この場合は _spBodyOnLoadFunctionNames.push() メソッドを使うのが一般的です。通常のWebサイトであれば、Body要素の Load イベントを利用するところですが、SharePoint のコンテンツ ページ上からは Body 要素の Load イベントに直接追加できません。

そのために用意されているのが _spBodyOnLoadFunctionNames 配列であり、push メソッドに呼び出したい関数名を指定します。

しかし、クライアント オブジェクト モデルを使う場合にこれを用いてしまうと、呼び出しに必要な SP.JS ファイルがロードされる前に関数が呼び出されてしまうのでうまくいきません。

このようなケースでは ExecuteOrDelayUntilScriptLoaded 関数を利用すると便利です。

コメント