我有一个包含多个html文件的文件结构。每个文件都包含相同的js文件。有些代码仅用于document.ready函数中的index.html,而另一些代码仅用于help.html。所以这是我的问题:
如果我访问index.html,那么是否有一个干净的解决方案只能为document.ready函数(在ext js文件中定义)中的index.html运行所需的代码片段(对于help.html也一样?
注意:我想将所有JS-Code存储在外部js中。我知道,我可以在每个文件的标题中存储所需的代码片段,但我真的想将整个js代码只存储在一个ext文件中。
答案 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/
)