如何加载只添加一个附加脚本的JS脚本

时间:2010-12-27 07:04:25

标签: javascript

我有2个脚本文件放在<head>

但是,它们共享相同的Util脚本文件。 我希望如果它们都加载到同一页面上,那么util文件只会加载一次。

如果只加载了其中一个,则仍会加载一次util ... 我不能使用<script src=...utils.js> ...只有2个脚本 我正在使用

var s = document.createElement("script");
s.src = s3 + "/js_enc/utils.js";
s.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(s);

实现这一目标的最佳方法是什么?

感谢

1 个答案:

答案 0 :(得分:2)

这似乎不是问题,因为Util脚本只会在声明时加载:

<script type='text/javascript' src='util.js'></script>
<script type='text/javascript' src='script1.js'></script>
<script type='text/javascript' src='script2.js'></script>

但是如果你想检查脚本是否已经加载,你可以在Util脚本中设置一个全局变量,比如

var utilFound = true;

然后检查每个脚本以查看它是否已设置。

if(!utilFound) { alert("Util not loaded!"); }

您还可以根据某些条件切换变量,例如:

if(utilFound) { 
  alert("Util hasn't been accessed yet."); 
  utilFound = false;
}
else {
  alert("Util has already been accessed.");
}

<强>更新

根据您的编辑,“检查是否设置和切换”解决方案可以正常工作。如果已设置变量,请不要运行document.createElement代码。

util.js文件中,添加

var utilLoaded = false;

然后在每个脚本中添加您的代码段,再加上utilLoaded支票/切换:

if(!utilLoaded) {
  var s = document.createElement("script");
  ....
  utilLoaded = true;
}