使用javascript插入一些javascript代码

使用javascript插入一些javascript代码,javascript,Javascript,我正在使用一种方法在页面中插入一些javascript代码,该代码适用于所有浏览器,但不适用于IE。以下是一个示例: 与IE不正常工作的线路为: ele.text = document.getElementById('DIV_js').innerHTML ; 如果我将此行更改为: ele.text = 'alert("Hello")' ; 它起作用了。但是我需要能够在很多行中插入代码,而不仅仅是一行用于显示警报,这就是为什么我使用DIV来包含Javascript代码的原因 有人知道如何使此

我正在使用一种方法在页面中插入一些javascript代码,该代码适用于所有浏览器,但不适用于IE。以下是一个示例:

与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>
看看这在IE中是否有效:

我将其更改为eval调用,而不是将其插入到脚本元素中。

尝试以下操作:

// The rest of the code above omitted for brievity
var ele = document.createElement("script");
ele.type = 'text/javascript';
ele.innerHTML = document.getElementById('DIV_js').innerHTML;

// Don't use getElementsByTagName, you risk inserting the script in more than one div
document.getElementById('yourDiv').appendChild(ele);

innerHTML从IE6到IE9都可以使用,但它有bug。在IE中,tbody元素上的innerHTML是只读的

你可以参考这一点,我认为,更好的方法是在运行时添加脚本,但要像google或facebook那样添加到头部:函数{var ga=document.createElement'script';ga.type='text/javascript';ga.async=true;ga.src='https:'==document.location.protocol?:'+'.google analytics.com/ga.js';var s=document.getElementsByTagName'script'[0];s.parentNode.insertBeforega,s;};它在IE6上不起作用,还是在IE7和IE8上对你也不起作用?链接中的例子在Win XP上的IE7和IE8中对我起作用。@Manjula是的,现在它在IE7到IE9上起作用。如果有人寻求相同问题的帮助,我已经上传了脚本。我不测试IE6;那么-这意味着这个答案对你有效吗?如果是的话-介意标记吗?我没关系,多亏了Jake,它现在正在使用IE。我已经上传了该文件,可能对那些想要将Javascript代码添加到DIV中的页面的人有用:并且使用evalele.text;我们不再需要使用document.body.insertBefore…: