SharePoint にロードするカスタム JS スクリプトがあり、SP が独自の初期化を完了した後に init メソッドを実行するのに問題があります。
_spBodyOnLoadFunctionNames
最初に「公式」の方法を試し、本体のロード後に実行された関数のリストに関数名を追加しました_spBodyOnLoadFunctionNames.push("myInitMethod");
が、ページのロードごとに起動するわけではありません。それに頼ることはできません。
ExecuteOrDelayUntilScriptLoaded
次に、ExecuteOrDelayUntilScriptLoaded(myInitMethod, "sp.js");
関数を使用しようとしましたが、ページの読み込みごとに起動しません。
どちらの方法でも機能しますが、毎回ではありません。SP が初期化される前にスクリプトが読み込まれることがあると思います。これは主に Chrome で発生しますが、IE でも発生します。
SP の準備ができたときにスクリプトが実行されるようにするにはどうすればよいですか?
注: ページが読み込まれ、SP オブジェクトが完全に初期化されていない場合 (ExecuteOrDelayUntilScriptLoaded に登録されている関数が呼び出されていない場合) には、興味深い動作があります。サブサイトの階層を確認できます) 次のファイルがロードされ、(ExecuteOrDelayUntilScriptLoaded に登録されている) 初期化関数が呼び出されます!
- core.debug.js
- sp.core.debug.js
- ScriptResx.ashx
- sp.ui.dialog.debug.js
- sp.runtime.debug.js
- sp.debug.js
そのクリックの後はすべて問題ありませんが、ページロードがそうではないのはなぜですか?