如何通过javascript加载页面来了解

时间:2016-06-13 04:58:52

标签: javascript html html5

我必须使用名为Js1,Js2的javaScript文件。我想从Js2知道,是不是在html页面上加载了Js1。请分享一个例子。谢谢。

1 个答案:

答案 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事件,效率更高!