2012年8月25日 星期六

IE使用createElement生成iframe的BUG

很好,又一個IE BUG

當你嘗試用 document.createElement("iframe") 產生一個iframe時

iframe.name = "xxx";

IE 會把它解析成 submitName 而非 name

當你將 form 的 target 指向 iframe 的 name

並嘗試使用POST傳值給 iframe 時他會另開一個新分頁

而不會將 iframe 導向 action 指定的頁面

解決方法:

iframe.setAttribute("name", "xxx");

2013/04/30 補充

IE7 不能用 iframe.setAttribute("name", "xxx");

他還是會另開一個新分頁

解決方法:


//A (any browser)
var iframe = document.createElement('iframe');
iframe.name = 'frame_x';

//B (only in IE)
var iframe = document.createElement('<iframe name="frame_x"/>');

//C (use a JS library that fixes the bug (e.g. jQuery))
var iframe = $('<iframe name="frame_x"></iframe>');

//D (using jQuery to set the attribute on an existing element)
$('iframe:first').attr('name','frame_x');

http://stackoverflow.com/questions/2181385/ie-issue-submitting-form-to-an-iframe-using-javascript

沒有留言:

張貼留言