之前有寫過一個自動產生隱藏iframe的方法,不過好像沒有讓它支援所有瀏覽器,在IE系列好像因為安全性問題,並不會建立成功,所以把原本使用createElement來建立iframe,而改成在ie裡使用
var frame = document.createElement("<iframe name=\"_hiddenframe\">");
因為在IE裡create IFrame時,並不能指定他的name屬性,不過很有趣的一件事,在IE9時,這規則又被打破了,如果強行使用上面方法會出現以下錯誤:
DOM Exception:INVALID_CHARACTER_ERR(5)
此方法需要使用到jQuery,主要來用判斷Browser是何種及其版本:
function createIFrame() { try { if (!document.getElementById("_hiddenframe")) { if($.browser.msie && parseInt($.browser.version,10) < 9) { var frame = document.createElement("<iframe name=\"_hiddenframe\">"); } else { var frame = document.createElement("iframe"); } frame.setAttribute("name", "_hiddenframe1"); frame.setAttribute("src", "about:blank"); frame.setAttribute("frameborder", "0"); frame.setAttribute("height", "0"); frame.setAttribute("width", "0"); frame.setAttribute("id", "_hiddenframe"); frame.name = "_hiddenframe"; document.body.appendChild(frame); window.frames._hiddenframe.name = "_hiddenframe"; document.getElementsByTagName("body")[0].appendChild(frame); //alert(123); } }catch(e){ alert(e); } //alert(222); }