2015-02-23 462 views
0

我已经编写了一个代码来在运行时添加脚本,但该代码在Safari浏览器中不工作。我的代码如下。脚本在safari中不工作

var head = document.head; 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.setAttribute("src", url); 
    head.appendChild(script); 
    head.removeChild(script); 

对不起,我的英文不好...

+0

为什么你最终删除脚本?难道你不应该至少等到它加载吗? – 2015-02-23 12:03:53

+0

在javscript控制台中的任何错误? – 2015-02-23 12:04:02

+0

在控制台中没有收到任何错误。注意: - 如果你在控制台没有错误,那么你的代码正在工作,这在firefox,Chrome和IE-9 – 2015-02-23 12:05:08

回答

1

通过使用它的名字作为一个属性并不适用于所有browswers工作据我所知更改的属性。所以,尽量选用:

script.setAttribute('type', "text/javascript"); 

,而不是

script.type = "text/javascript"; 

或者,如果你不介意使用jQuery它为您处理跨浏览器的问题,像这样做:

$.getScript('yourscript.js'); 
+0

我已经这样做,但仍然没有工作。 – 2015-02-23 12:02:48

+0

谢谢,$ .getScript('yourscript.js');为我工作。 – 2015-02-23 12:07:26

+0

我在Mac OS X Yosemite 10.10.2(14C109)w/Safari Version 8.0.3(10600.3.18)上测试过,效果很好。我可以看到的一个单一问题是,您正在添加脚本'head.appendChild(script)',然后您立即将其移除'head.removeChild(script)' - 这是为了达到目的吗? – 2015-02-23 22:15:35