示例代码:

<!DOCTYPE html>
<html>
  <body  =\"document.getElementById(\'loader\').innerHTML = \'< >alert(\\\'hi\\\')<\\/ >\'\">
    Shouldn\'t an alert saying \'hi\' appear?
    <div id=\"loader\"></div>
  </body>
</html>

 运行结果如下:

Shouldn\'t an alert saying \'hi\' appear?

怎么回事? 为什么被插入的js脚本不执行呢?

正确的做法是创建脚本,然后注入内容。

var g = document.createElement(\' \');
var s = document.getElementsByTagName(\' \')[0];
g.text = \"alert(\\\"hi\\\");\"
s.parentNode.insertBefore(g, s);
收藏 打印