-1

例如:

<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

4

3 回答 3

6

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

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

于 2013-03-14T18:56:55.913 回答
1
<script type="text/javascript">

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

<div id="media">123</div> <a href="javascript:void(0)" onClick="fun();">Click</a>
于 2013-03-14T19:00:06.147 回答
0

你的 JS 函数应该是这样的。

function fun() {
  alert("working");
}
于 2013-03-14T18:56:35.680 回答