0

我有一个包含多个 html 文件的文件结构。每个文件都包含同一个 js 文件。一些代码仅用于 document.ready 函数中的 index.html,而另一些代码可能仅用于 help.html。所以这是我的问题:

如果我访问 index.html(help.html 相同),是否有一个干净的解决方案可以在 document.ready 函数(在 ext js 文件中定义)中只运行 index.html 所需的代码片段?

注意:我想将所有 JS-Code 存储在外部 js 中。我知道,我可以将所需的代码片段存储在每个文件的标头中,但我真的想只将整个 js 代码存储在一个 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 是更好的选择,因为您不确定是否发生了 url 重写,或者服务器是否加载了默认文档(例如,url 可能是/testDir/服务器提供的/testDir/index.html)

于 2013-09-17T12:06:05.460 回答