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