Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 外部js文件中的document.ready,用于检测加载的文件_Javascript_Jquery - Fatal编程技术网

Javascript 外部js文件中的document.ready,用于检测加载的文件

Javascript 外部js文件中的document.ready,用于检测加载的文件,javascript,jquery,Javascript,Jquery,我有一个包含多个html文件的文件结构。每个文件对同一个js文件都有一个包含。有些代码只用于document.ready函数中的index.html,而有些代码可能只用于help.html。所以我的问题是: 如果我访问index.html(与help.html相同),是否有一个干净的解决方案可以只运行document.ready函数(在ext js文件中定义)中index.html所需的代码段 注意:我想将所有JS代码存储在外部JS中。我知道,我可以将所需的代码片段存储在每个文件的头中,但我确实

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

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

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

您有几个选项

1) 您可以查询url
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
}

如果($('#divImInIndex')。长度>0){
//做逻辑
}

可能还有其他方法。。。但这显然不符合最佳实践。我相信在我介绍的两种方法中,#2是更好的选择,因为您不确定是否发生了url重写,或者服务器是否加载了默认文档(例如,url可能是
/testDir/
,因此服务器提供
/testDir/index.html

因此,检查
window.location.href
并根据显示的页面执行这些代码段有什么不对?非常感谢。我有一个类似于#1的函数,但是#2的想法对我来说也是更好的选择,因为正如你所说的,将来我想使用url重写规则。