jQuery-HTML中的脚本标签由jQuery解析并且不执行
<html><body>
<div id='something'>
    ...
    <script>
    var x = 'hello world';
    </script>
    ...
</div>
</body>
</html>
$.ajax({    url: 'example.html',
    type: 'GET',
    success: function(data) {
        $('#mydiv').html($(data).find('#something').html());
        alert(x);
    }
});
jQuery,但是,没有执行在第一个文件中的javascript,即使文档中说的那样。我该怎么做呢?
回答:
正如Pointy 指出的 ( 双关语 ),当您将HTML传递给时,jQuery会混淆SCRIPT标签$()。它不会删除它们-
只是将它们添加到HTML生成的DOM集合中。您可以像这样执行脚本:
$.ajax({    url: 'example.html',
    type: 'GET',
    success: function(data) {
        var dom = $(data); 
        $('#mydiv').html(dom.find('#something').html());
        dom.filter('script').each(function(){
            $.globalEval(this.text || this.textContent || this.innerHTML || '');
        });
    }
});
以上是 jQuery-HTML中的脚本标签由jQuery解析并且不执行 的全部内容, 来源链接: utcz.com/qa/410420.html






