我的以下代码只会使用jQuery的追加信息从Firebug发出一次警报。我很确定只要脚本标签碰到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/)并且它有两次DID警报。你认为这是一个Firebug问题还是别的什么?
答案 0 :(得分:0)
似乎我遗漏了一个重要的细节...... iframe是一个RTE。这意味着iframe启用了designMode,这反过来又不允许JS在里面运行。在今天之前我根本不知道。
似乎似乎通过在父代中运行来运行jquery。如果我从jquery.append控制台登录窗口,它将显示父窗口而不是iframe。