我必须使用名为Js1,Js2的javaScript文件。我想从Js2知道,是不是在html页面上加载了Js1。请分享一个例子。谢谢。
答案 0 :(得分:1)
在 js1 的开头添加此代码:
var js1Loaded=true; //if your js1 is not wrapped in a function scope
window.js1Loaded=true //if your js1 is wrapped in a function scope
并在 js2 中使用以下代码检查条件:
if(js1Loaded){ //or window.js1Loaded
//js1 is loaded
}
<强>更新强>
另一种实现此目的的方法是使用DOMContentLoaded
事件:
document.addEventListener("DOMContentLoaded", function(event) {
//all the scripts are loaded
//write your js2 code here
});
以评论为基础
什么时候需要写window.js1Loaded = true?这个声明是javascript的结尾吗?
你需要在你的js1文件中写window.js1Loaded=true
(在开头或结尾,实际上并不重要)。
如果我在Js1中创建布尔值,是否能够在Js2 alos中访问样本变量?
正如我之前提到的,如果你的js文件不包装在一个函数作用域中,那么你只需编写var js1Loaded=true;
并从js1之后加载的所有js文件中访问它。 / p>
按功能范围我的意思是:
(function(){
//your code here
}());
如果您的代码位于函数范围内,则必须使用js1Loaded
全局定义window.js1Loaded=true;
变量
快速示例
<强> HTML 强>
<html>
<head></head>
<body>
//some html elements here
<script type="text/javascript" src="/Script/js1.js"></script>
<script type="text/javascript" src="/Script/js2.js"></script>
</body>
</html>
<强> JS1 强>
var js1Loaded=true;
//some js code here
<强> JS2 强>
//some js code here
if(js1Loaded){
alert('js1 is loaded');
}
但最后我真的建议您使用DOMContentLoaded
事件,效率更高!