innerhtml中的javascript无法正常工作

时间:2013-03-14 18:52:42

标签: javascript innerhtml

例如:

<html>
    <div id="media">123</div>
    <a href="javascript:void(0)" onClick="return fun()">Click</a>
    <script type="text/javascript">
        function fun() {
            document.getElementById("media").innerHTML = '<script type="text/javascript">alert("working");<\/script>';
        }
    </script>
</html>

单击警报后不显示。

alert("working");只是一个例子。我想让它完成一个工作其他JavaScript 。我有一个工作要通过ajax处理应该使用innerHTML

3 个答案:

答案 0 :(得分:6)

HTML spec指定不应执行使用innerHTML插入的脚本标记。这是一个安全考虑因素。

如果您已确定,仍有办法执行此操作,例如将其添加到img处理程序或创建脚本元素,将其插入DOM并更改其text属性。我不会详细说明这些,因为这样做通常被认为有些粗略。如果您不想尝试注入脚本,则应该在页面源中包含脚本元素。

答案 1 :(得分:1)

<script type="text/javascript">

function fun() {
    alert("working");
}
</script>

<div id="media">123</div> <a href="javascript:void(0)" onClick="fun();">Click</a>

答案 2 :(得分:0)

你的JS功能应该是这样的。

function fun() {
  alert("working");
}