JavaScript可以使用innerHTML插入脚本吗?

我想一些脚本加载到使用页面innerHTML<div>。脚本似乎已加载到DOM中,但从未执行(至少在Firefox和Chrome中)。将脚本插入时,是否可以执行脚本innerHTML

样例代码:

<!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>

回答:

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

MooTools会自动为您执行此操作,而且我敢肯定jQuery也是如此(取决于版本。jQuery

1.6+版本使用eval)。这样可以节省解析<script>标签和转义内容的麻烦,以及一堆其他“陷阱” 的麻烦。

通常,如果您要eval()亲自进行操作,则希望创建/发送没有任何HTML标记(例如)的脚本代码<script>,因为这些标记将无法eval()正常使用。

以上是 JavaScript可以使用innerHTML插入脚本吗? 的全部内容, 来源链接: utcz.com/qa/397413.html

回到顶部