gpt4 book ai didi

javascript - 如何执行动态加载的 JavaScript block ?

转载 作者:IT王子 更新时间:2023-10-29 03:10:30 25 4
gpt4 key购买 nike

我正在处理一个网页,我在其中进行 AJAX 调用,该调用返回一大块 HTML,例如:

<div>
<!-- some html -->
<script type="text/javascript">
/** some javascript */
</script>
</div>

我正在将整个内容插入到 DOM 中,但 JavaScript 并未运行。有没有办法运行它?

一些细节:我无法控制脚本 block 中的内容(因此我无法将其更改为可以调用的函数),我只需要执行整个 block 。我无法对响应调用 eval,因为 JavaScript 位于较大的 HTML block 中。我可以做某种正则表达式来分离出 JavaScript,然后对其调用 eval,但这非常令人讨厌。谁知道更好的方法?

最佳答案

通过设置元素的 innerHTML 属性添加的脚本不会被执行。尝试创建一个新的 div,设置它的 innerHTML,然后将这个新的 div 添加到 DOM。例如:

<html><head><script type='text/javascript'>function addScript(){    var str = "<script>alert('i am here');<\/script>";    var newdiv = document.createElement('div');    newdiv.innerHTML = str;    document.getElementById('target').appendChild(newdiv);}</script></head><body><input type="button" value="add script" onclick="addScript()"/><div>hello world</div><div id="target"></div></body></html>

关于javascript - 如何执行动态加载的 JavaScript block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com