0

複数のhtmlファイルを含むファイル構造があります。各ファイルには、同じ js ファイルへのインクルードがあります。document.ready 関数の index.html のみを対象とするコードもあれば、help.html のみを対象とするコードもあります。だからここに私の質問があります:

index.htmlにアクセスした場合(ext jsファイルで定義されている)document.ready関数でindex.htmlに必要なコードスニペットのみを実行するクリーンなソリューションはありますか(help.htmlと同じですか?

:すべてのJSコードを外部jsに保存したい。必要なコード スニペットを各ファイルのヘッダーに保存できることはわかっていますが、js コード全体を 1 つの ext ファイルにのみ保存した​​いと考えています。

4

1 に答える 1

1

いくつかのオプションがあります

1)URLdocument.URLを調べて、それが必要なものと一致するかどうかを判断し、それをifブロックで実行できます。例えば

String.prototype.endsWith = function(suffix) {
    return this.indexOf(suffix, this.length - suffix.length) !== -1;
};

if (document.URL.endsWith('testDir/index.html')) {
    //do logic.
}

2) インデックスに特別な div id/class/etc を配置することもできます

<div id='divImInIndex'></div>

if ($('#divImInIndex').length > 0) {
    //do logic
}

他の方法があるかもしれません...しかし、これは間違いなくベストプラクティスに従っていません。私が提示した 2 つのうち、#2 の方が適切なオプションであると思います。単純に、URL の書き換えが発生したかどうか、またはデフォルトのドキュメントがサーバーによって読み込まれたかどうかがわからないためです (たとえば、/testDir/サーバーが提供するURL である可能性があります)。 /testDir/index.html)

于 2013-09-17T12:06:05.460 に答える