document.getElementById('foo')。src =''不起作用

时间:2014-12-01 14:07:21

标签: javascript jquery html twitter-bootstrap

我有一个使用twitter bootstrap的网站。有时开发互联网不起作用,所以jquery不会被加载,我的网站将无法正常工作。这就是为什么我在js文件夹中有一个jquery的本地副本。我编辑了bootstrap文件,所以如果没有检测到jquery,浏览器会将jquery的位置从cdn更改为我的本地文件。我尝试这样做但它不起作用:这是我的代码:

if (!window.jQuery) {
  document.getElementById('jq').src='../../js/jquery.js';
  console.log("You are using a backup file of jquery provided by our website");
}
else{
  console.log("jQuery has been succesfully loaded by kounelios13");
}

HTML:

<script src="http://code.jquery.com/jquery-1.11.0.min.js" id="jq"></script>
        <script src="../../js/bootstrap.js" type="text/javascript"></script>
        <script src="../../js/prefixfree.js" type="text/javascript"></script>
        <script src="../../js/apps/rgba.js" type="text/javascript"></script>

这是放在bootstrap的js文件中。 任何想法???

3 个答案:

答案 0 :(得分:2)

成像CDN文件不可用。然后浏览器开始加载下一个脚本文件(bootstrap.js),解析器进入bootstrap.js,你在那里放置了对jQuery的检查。您的代码检测到未加载jQuery,然后脚本会更改src标记的jq。它工作正常并且jQuery开始加载,但是浏览器不会等到jQuery被下载并继续运行Bootstrap,它会立即失败,因为它需要jQuery。因此错误。

您可以尝试使用此版本的备份jQuery库,而这应该是可靠的:

<script src="http://code.jquery.com/jquery-1.11.0.min.js" id="jq"></script>
<script>
if (!window.jQuery) {
    document.write("<script src='../../js/jquery.js'>\x3C/script>");
} 
</script>
<script src="../../js/bootstrap.js" type="text/javascript"></script>
<script src="../../js/prefixfree.js" type="text/javascript"></script>
<script src="../../js/apps/rgba.js" type="text/javascript"></script>

答案 1 :(得分:1)

使用jquery我不认为bootstrap脚本有效,所以你需要它。

如果您有互联网问题,那么您可以复制jquery链接并制作该文件并附加。

答案 2 :(得分:0)

对于Document,ID必须是唯一的,您有另一个使用ID jq或无的ID。