如何在IE 8上向页面注入javascript?

发布时间:2020-02-13 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了如何在IE 8上向页面注入javascript?脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
让我们假设我有以下标记:
<div id="placeHolder"></div>

我有一个JavaScript变量jsVar,它包含一些标记和一些JavaScript.

通过使用Mootools 1.1,我可以将JavaScript内容注入占位符,如下所示:

$('placeHolder').setHTML(jsVar);

这适用于Firefox,Opera甚至Safari,结果标记如下所示:

<div id="placeHolder">
    <strong>I was injected</strong>
    <script type="text/javascript">
        alert("I was injected too!");
    </script>
</div>

但是,在IE 8上我得到以下内容:

<div id="placeHolder">
    <strong>I was injected</strong>
</div>

有没有办法在IE 8上注入JavaScript或安全模型是否禁止我这样做?

我尝试了Luca Matteis的使用建议

document.getElementById("placeHolder").innerHTML = jsVar;

而不是MooTools代码,我得到相同的结果.这不是MooTools的问题.

解决方法

MSDN post专门解决了如何使用innerHTML将javascript插入页面.你是对的:IE确实认为这是一个安全问题,所以要求你跳过某些环节来注入脚本…大概是黑客可以读取这个MSDN帖子,所以我不知道如何为什么MS认为这个额外的间接层“安全”,但我离题了.

来自MSDN文章:

<HTML>
<SCRIPT>
function insertScript(){
    var sHTML="<input type=button onclick=" + "go2()" + " value='Click Me'><BR>";
    var sScript="<SCRIPT DEFER>";
    sScript = sScript + "function go2(){ alert('Hello from inserted script.') }";
    sScript = sScript + "</SCRIPT" + ">";
    ScriptDiv.innerHTML = sHTML + sScript;
}    
</SCRIPT>
<BODY onload="insertScript();">
    <DIV ID="ScriptDiv"></DIV>
</BODY>
</HTML>

如果可能的话,您可能希望考虑使用document.write注入脚本加载标记来提高安全性并减少跨浏览器的不兼容性.我知道这可能是不可能的,但值得考虑.

总结

以上是脚本之家为你收集整理的如何在IE 8上向页面注入javascript?全部内容,希望文章能够帮你解决如何在IE 8上向页面注入javascript?所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。
标签: