javascript document.write已加载但未执行

时间:2013-08-17 01:44:46

标签: javascript

我有这个代码让我很生气。

parent.document.write("<script type='application/javascript' scr='http://backlinker.nl/ip.php?callback=getip'><\/script>");

这可以工作并添加到html文档的head部分:

<script type='application/javascript' scr='http://backlinker.nl/ip.php?callback=getip'></script>

但它没有执行。 区别在于,当我将它直接粘贴到html文档的头部而没有parent.document.write时,它可以正常工作并执行:

    <script type='application/javascript' scr='http://backlinker.nl/ip.php?callback=getip'></script>

在firebug html源代码中输出:

<script src="http://backlinker.nl/ip.php?callback=getip" type="application/javascript">
getip({"ip": "195.241.100.221"});
</script>

通过parent.document.write函数加载NO IP输出:

<script src="http://backlinker.nl/ip.php?callback=getip" type="application/javascript">
</script>

任何人都知道为什么parent.document.write函数正在工作(它将代码放入head html部分)但是没有加载ip?!

好的,我们有一个替代方案正在运作,但仍然没有回答让我发疯的问题,为什么我的工作不正常?!

解决方法=

var scriptElement = document.createElement("script");
scriptElement.src = 'http://backlinker.nl/ip.php?callback=getip';
scriptElement.type = "text/javascript"; //specify type so that the browser won't ignore it
var head = document.getElementsByTagName("head")[0] || document.documentElement;

head.appendChild(scriptElement);

2 个答案:

答案 0 :(得分:2)

尝试:

var scriptElement = document.createElement("script");
scriptElement.src = 'http://backlinker.nl/ip.php?callback=getip';
scriptElement.type = "text/javascript"; //specify type so that the browser won't ignore it
var head = document.getElementsByTagName("head")[0] || document.documentElement;
head.appendChild(scriptElement);

答案 1 :(得分:1)

如果要创建脚本元素,加载它并执行 - 请尝试使用document.createElement:

var scriptElement = document.createElement("script");
scriptElement.src = 'http://backlinker.nl/ip.php?callback=getip';
document.body.appendChild(scriptElement);