【发布时间】:2011-12-07 06:50:48
【问题描述】:
我正在使用一种方法在页面中插入一些适用于所有浏览器但不适用于 IE 的 javascript 代码。这是一个示例: http://boxfly.free.fr/tmp/innerjs.html
IE不能正常工作的行是:
ele.text = document.getElementById('DIV_js').innerHTML ;
如果我将此行更改为:
ele.text = 'alert("Hello")' ;
它有效。但是我需要能够插入很多行的代码,而不仅仅是用于显示警报的一行,这就是为什么我使用 DIV 来包含 Javascript 代码... ;)
有谁知道如何让这个脚本在 IE 上工作:
<body>
<div id="DIV_js" style="display:none;">
var i = 'here' ;
function hello() {
alert('toto says ' + i) ;
}
</div>
<script>
var ele = document.createElement("script") ;
ele.type = 'text/javascript' ;
ele.text = document.getElementById('DIV_js').innerHTML ;
document.body.insertBefore(ele, (document.getElementsByTagName("div"))[0]);
</script>
<span onClick="hello();">Click to display alert</span>
</body>
【问题讨论】:
-
我认为,更好的方法是在运行时添加脚本,但要像 google 或 facebook 那样添加到头部:(function() { var ga = document.createElement('script'); ga .type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'ssl' : 'www') + '.google-analytics. com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
-
它不能在 IE6 上运行还是在 IE7 和 IE8 上也不能运行?该示例(在链接 boxfly.free.fr/tmp/innerjs.html 中)在 Win XP 上的 IE7 和 IE8 中为我工作。
-
@Manjula 是的,现在它可以在 IE7 到 9 上运行。如果有人对同一问题寻求帮助,我已经上传了脚本。我不测试 IE6 ;)
标签: javascript