假设启用了jQuery。
是否会调用alert(1)
,alert(2)
?
这是HTML:
<div id="testDiv">
<script>
$('#testDiv').remove();
alert(1);
</script>
<script>
alert(2);
</script>
</div>
我自己做了一些测试,并发现第一个警报会显示但不会显示第二个警报。我在Chrome下测试。只是想知道每个其他浏览器会发生什么。我可以期待同样的行为吗?
答案 0 :(得分:3)
亲眼看看:http://jsfiddle.net/7EpNj/
第一个将执行,因为它将完成第一个执行第一个脚本标记,即使它已从DOM中删除。第二个脚本标记将不会执行。
这是预期的行为,并且应该跨浏览器保持一致。
编辑但是,虽然最新的Firefox,Chrome,Safari,Opera和Internet Explorer(IE10)的行为符合预期,但IE9及更低版本实际上会触发这两个功能,即使两个脚本标签都是从DOM中移除。
<script>
function func1(){
alert("func1()");
}
function func2(){
alert("func2()");
}
</script>
<div id="testDiv">
<script>
$('#testDiv').remove();
func1();
</script>
<script>
func2();
</script>
</div>
答案 1 :(得分:0)
他们不应该。 jQuery将首先执行$("#test-div").remove();
,然后再转到下一行。删除#test-div
也会删除其中的所有标记和脚本,从而删除对func1()
和func2()
的调用。