Debug Modeオブジェクトが予想されるときにSP.JSを使用したexecureDelayUnTilloaded

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/76370

  •  10-12-2019
  •  | 
  •  

質問

現在、私のSharePointページにロードされるJavaScriptファイルを持っています。

jQuery(document).ready(function() {
 ExecuteOrDelayUntilScriptLoaded(myfunction(), "sp.js");
});

myfunction = function(){
 /*Do something here.*/
};
.

今JavaScriptが正しく実行されますが、リストページではリボンがリストタブをロードするのを防ぎます。コンソールで私は誤りを下回る。

Script5007:オブジェクトがinit.debug.js、4153文字5 エラー

すべての機能をコメントしても上記のように正確に見えてもエラーメッセージが表示されます。

"SP.JS"を "sp.debug.js"に変更した場合、エラーメッセージが表示されません。ページにロードされているスクリプトを見ることから、SP.Debug.jsがロードされ、sp.jsではなく意味があります。私は実際のJavaScriptコードにSp.debug.jsを貼り付けたくないので、プロダクションサーバーに到達したときにsp.debug.jsを使用しません。これがexecuteOrdelayUntilScriptLoaded(jsfunction()、 "sp.js")を持つコードでこれまでに起こることはありません。 JavaScriptの#ifdebugステートメントのように、両方の環境のために機能する方法はありますか?またはその他の考え方。

役に立ちましたか?

解決

execueDelayunTilloaded 間違っている、使用する必要があります。機能名、実行されていません。

これと同じように:

jQuery(document).ready(function() {
 ExecuteOrDelayUntilScriptLoaded(myfunction, "sp.js");
});
.

故障から「()」を取り除いたことに注意してください。今、それは期待どおりに機能するべきです

他のヒント

そのような目的でjQueryを使用しないで、代わりにSharePoint埋め込み機能を使用します。

var myFunction = function(){
    ExecuteOrDelayUntilScriptLoaded(yourfunction, "sp.js");
}
_spBodyOnLoadFunctionNames.push("myFunction");
.

または匿名関数

_spBodyOnLoadFunctionNames.push(function(){
    ExecuteOrDelayUntilScriptLoaded(yourfunction, "sp.js");
});
.

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top