当前位置: 首页 > 面试题库 >

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

童冠玉
2023-03-14
问题内容

我想一些脚本加载到使用页面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()正常使用。



 类似资料:
  • 问题内容: 我想一些脚本加载到使用页面上。脚本似乎已加载到DOM中,但从未执行(至少在Firefox和Chrome中)。将脚本插入时,是否可以执行脚本? 样例代码: 问题答案: 您必须使用eval()来执行作为DOM文本插入的任何脚本代码。 MooTools会自动为您执行此操作,而且我敢肯定jQuery也是如此(取决于版本。jQuery 1.6+版本使用)。这样可以节省解析标签和转义内容的麻烦,以

  • 问题内容: 我会解释一个模糊的标题。 我正在编写一个SQL脚本来为数据库中表的每一行创建一个插入语句,纯粹是为了能够将该数据应用回另一个数据库。 这是我目前所拥有的: 它的效果很好,输出如下: 问题是,如果字段之一为空,则该行将无法生成更新脚本,在输出文件中,该行仅是空白。显然,由于有20多个字段,因此一些可选内容意味着几乎不会生成我的任何脚本。 有没有办法解决这个问题? 问题答案: 对于NULL

  • 问题内容: 我正在学习如何创建Chrome扩展程序。我刚刚开始开发一个捕捉YouTube事件的工具。我想将其与YouTube Flash Player结合使用(稍后,我将尝试使其与HTML5兼容)。 manifest.json: myScript.js: 问题在于控制台为我提供了 “开始!” ,但没有 “状态已更改!” 当我播放/暂停YouTube视频时。 将此代码放入控制台后,它就可以工作了。我

  • 问题内容: 是否可以使用BeautifulSoup从HTML中删除脚本标签及其所有内容,还是必须使用正则表达式或其他内容? 问题答案:

  • 问题内容: 这是JS代码: 主体确实插入了script元素,但是没有加载JS资源,甚至没有http请求。 有人可以解释为什么会这样吗? 问题出在Zeptojs的$方法上 它的工作方式类似于上面的代码,并导致该错误。 问题答案: 这是微不足道的。 如规范中所述8.4解析HTML片段和8.2.3.5其他解析状态标志,)引用: 使用浏览器时_ 创建一个新的Document节点,并将其标记为HTML文档。

  • 我的问题是:如果有,比方说20个节点,这是相当乏味和耗时的。有没有一种方法可以像Hadoop那样从某个本地化位置启动Spark?当您从主节点运行Hadoop时,它会远程启动所有从节点。我正在寻找一个这样的解决方案,或者一个可以SSH到节点并启动它们的python脚本。