提问者:小点点

可以用innerHTML插入脚本吗?


我尝试使用

上的innerHTML将一些脚本加载到页面中。 脚本似乎加载到DOM中,但从未执行过(至少在Firefox和Chrome中是这样)。 有没有一种方法让脚本在用innerHTML插入时执行?

示例代码:

null

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

null


共3个答案

匿名用户

您必须使用eval()来执行作为DOM文本插入的任何脚本代码。

MooTools将自动为您完成这一工作,我确信jQuery也会这样做(取决于版本,jQuery 1.6+版本使用eval)。 这省去了解析