非常に簡単にコード基本的に、私は何が起こっているか説明します:
var PnPResponsiveApp = PnPResponsiveApp || {};
これは、変数がすでに定義されているかどうかを確認していない場合は、エラーがスローされないよう、空にそれを等しくすることは非常に一般的な方法ですオブジェクト、より多くの情報のためにここを見て... varがすでに存在しているかどうかを確認するために、多くのフレームワークやライブラリに非常に安全な方法を使用しています:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators
PnPResponsiveApp.responsivizeSettings = function() {};
これは基本的にシンプルな機能ですが、オブジェクトに添付しますPnPResponsiveApp - 単にresponsivizeSettの場合ings = function(){};それは文字列が含まれていない場合は-1 indexOfをリターンするので、それはsettings.aspxていない場合は-1を返します - LinkBar内にあるリンクはsettings.aspxを持っている場合、これがチェックされ
if (window.location.href.indexOf('/settings.aspx') < 0) return;
ウィンドウオブジェクトに添付ますそれは可能性が0よりも小さくして、全体の関数の戻り値の...第2の戻りは、基本的にこれは、基本的には、MS-siteSettingsルートのクラスにすべての要素を検索し、変数settingsRootにそれらを等しい
var settingsRoot = $(".ms-siteSettings-root");
undefinedを返す、それ単一のDOMまたは複数のものにする...
if (!settingsRoot.length) {
これは基本的に、DOM要素にms-siteSettings-rootクラスがあるかどうかを確認します。lengthはNumberを返します。返されない場合は、1,2,3などの戻り値がある場合は0を返します。 ... Trueに等しいので、それがあります場合は、この方法では、我々がチェックすることができますJavaScriptで偽と0よりも大きいと等しい
setTimeout(PnPResponsiveApp.responsivizeSettings, 100);
のでsettingsRootがある場合、我々は、この機能ブロックを実行したsetTimeoutの私たちと100ms待つ... setTimeoutは常にこのように動作します。setTimeout(function()、time);最後に同じリターンが発生します...
希望の情報です...
以前に定義されていない場合に作成される 'PnPResponsiveApp'に' responsivizeSettings'関数を追加するように見えます。特にどの部分に質問がありますか? – lxe
@lxeこの行は特にPnPResponsiveApp.responsivizeSettings – suman
@sumanこれは、 'responsivizeSettings'という名前の' PnPResponsiveApp'メソッドを定義しています。 '= 'の後の' function(){...} 'は、呼び出されたときに実行するパラメータと文を指定します。 –