在AJAX调用后执行由innerHTML注入的<脚本>

2022-08-30 05:22:01

有一个名为“内容”的div:

<div id="content"></div>

它应该由AJAX填充PHP文件中的数据,包括一个标签。但是,此标记内的脚本未执行。<script>

<div id="content"><!-- After AJAX loads the stuff that goes here -->
   <script type="text/javascript">
     //code
   </script>
   <!-- More stuff that DOES work here -->
</div>

答案 1

我用了这个代码,它工作正常

var arr = MyDiv.getElementsByTagName('script')
for (var n = 0; n < arr.length; n++)
    eval(arr[n].innerHTML)//run script inside div

答案 2

作为 DOM 文本插入的 JavaScript 将不会执行。但是,您可以使用动态脚本模式来实现您的目标。基本思想是将要执行的脚本移动到外部文件中,并在收到Ajax响应时创建脚本标记。然后,您设置脚本标签的属性,瞧,它会加载并执行外部脚本。src

另一篇StackOverflow文章也可能对您有所帮助:可以使用innerHTML插入脚本吗?