【问题标题】:insert script tags into html element using innerhtml [duplicate]使用innerhtml将脚本标签插入到html元素中[重复]
【发布时间】:2014-12-21 03:29:11
【问题描述】:

我无法将此代码插入我的 HTML 页面:

<script type="text/javascript">
var1 = "1";
var2 = "2";
var3 = "3";
</script>
<script type="text/javascript" src="http://www.someadress.com/sss.js"></script>
<noscript><a href="http://someadress" target="_blank"><img src="someimg" width="468"
height="60"></a></noscript>';

我尝试过使用innerhtml,但它似乎不起作用。这是我尝试过的一个例子;我正在尝试在 ID 为 allImages 的元素中添加脚本:

    var imagesHTML = document.getElementById("allImages").innerHTML;
    imagesHTML = '<script type="text/javascript">
    var1 = "1";
    var2 = "2";
    var3 = "3";
    </script>
    <script type="text/javascript" src="http://www.someadress.com/sss.js"></script>
    <noscript><a href="http://someadress" target="_blank"><img src="someimg" width="468"
    height="60"></a></noscript>';

【问题讨论】:

    标签: javascript html tags innerhtml


    【解决方案1】:

    您无法通过注入 HTML 来加载 &lt;script&gt; 标签。相反,您需要使用eval() 函数!还有其他创建 DOM 对象和调用脚本的方法。请查看以下内容:

    注意:你应该永远不要使用eval(),除非你知道环境并且是绝对必要的。

    如果您不需要这些麻烦,您可以随时使用 jQueryMooTools 之类的库来使用 .html() 函数插入 HTML。

    【讨论】:

    • “相反,你需要使用eval() 函数!” 不,你不需要。而且可以说真的不应该
    • 另外:既然您知道这是上一个问题的重复,即使麻烦链接到它,为什么不将问题作为重复关闭?
    • @T.J.Crowder 更新了答案。请务必检查一下。
    • “相反,你需要使用eval()函数!”仍然存在,但仍然不正确。
    • 重复的答案似乎是针对 1 个好的解决方案 + 我无法理解代码,我将脚本用于整个 html 或每次用于不同的标签?