5

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

そのクリックの後はすべて問題ありませんが、ページロードがそうではないのはなぜですか?

4

3 に答える 3

4

これは、IE 以外のブラウザでのみ発生するタイミングの問題です。説明と非常に簡単な修正については、http://withinsharepoint.com/archives/256を参照してください。

于 2012-10-19T13:13:34.780 に答える
4

この動作は、SP 2010 と Google Chrome の間のいくつかの問題に関連しているようです。他のブラウザーではこの問題は発生していません。

于 2012-09-03T12:46:20.040 に答える