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

回到顶部