自動產生隱藏iframe AutoCreateIframe

之前有寫過一個自動產生隱藏iframe的方法,不過好像沒有讓它支援所有瀏覽器,在IE系列好像因為安全性問題,並不會建立成功,所以把原本使用createElement來建立iframe,而改成在ie裡使用

var frame = document.createElement("<iframe name=\"_hiddenframe\">");

因為在IE裡create IFrame時,並不能指定他的name屬性,不過很有趣的一件事,在IE9時,這規則又被打破了,如果強行使用上面方法會出現以下錯誤:

DOM Exception:INVALID_CHARACTER_ERR(5)

createiframe.png

此方法需要使用到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);
}

發表迴響