我有这个代码让我很生气。
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);
答案 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);