我的以下代码只会从 Firebug 发出一次警报,使用 jQuery 的追加。我很确定,只要脚本标签命中 DOM,它就会立即执行——不管是否是 iframe。
var iframe = document.getElementById('myiframe'),
iframe_window = iframe.contentWindow,
iframe_head = iframe_window.document.getElementsByTagName( 'head' )[0],
script = iframe_window.document.createElement('script');
script.type = 'text/javascript';
script.innerHTML = "alert(1);";
iframe_head.appendChild( script.cloneNode( true ) );
$(iframe_head).append( script.cloneNode( true ));
为了增加混乱,我使用了 jsfiddle ( http://jsfiddle.net/vs8KV/ ),它确实发出了两次警报。您认为这是 Firebug 问题还是其他问题?