IE7ではJavaScriptから動的に追加したiframeにname/target指定してフォームを送信すると新規ウィンドウが立ち上がってしまう
挙動
- name属性とtarget属性が一致しているはずなのに、IE7だと新規ウィンドウが立ち上がってしまう。
原因
- IE7では動的に追加したiframeはname属性が正しく設定されていない場合がある。
検証ページ
対策
- あらかじめiframeはHTMLに書いておく。
- もしくは、iframe追加後にloadを検知して、name属性を確認し、再設定する。
HTML
<form id="post-to-iframe" action="http://www.yahoo.co.jp/">
</form>
JS
var iframe = document.createElement('iframe');
iframe.name = 'iframe01';
document.getElementsByTagName('body')[0].appendChild(iframe);
var form = document.getElementById('post-to-iframe');
form.target = 'iframe01';
form.submit();
コメント / トラックバック