document.ready在外部js文件中检测哪个文件加载

时间:2013-09-17 12:01:22

标签: javascript jquery

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

如果我访问index.html,那么是否有一个干净的解决方案只能为document.ready函数(在ext js文件中定义)中的index.html运行所需的代码片段(对于help.html也一样?

注意:我想将所有JS-Code存储在外部js中。我知道,我可以在每个文件的标题中存储所需的代码片段,但我真的想将整个js代码只存储在一个ext文件中。

1 个答案:

答案 0 :(得分:1)

您有几个选择

1)您可以询问网址document.URL并确定它是否与您想要的匹配,并在if块中执行该操作。 e.g。

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-rewriting,或者服务器是否加载了默认文档(例如,url可能是{{1}所以服务器提供/testDir/