setAttribute iFrame名称和Chrome

时间:2013-10-18 20:21:26

标签: javascript google-chrome

这是一个简单的setAttribute,用于附加名称的iFrame。

问题是,以下代码适用于除Chrome以外的所有浏览器。

<iframe id="frame" frameborder="0" src="http://website.ca/"></iframe>

家长javascript:

(function() {
    var newFrameName = "hello";
    document.getElementById("frame").setAttribute("name", newFrameName);

})();
iFrame中的

    var iframeName = window.name;
    alert (iframeName );

警报在所有浏览器中调用“Hello”,Chrome调用“frame” - 这是iFrame的ID。 查看源代码(通过元素检查器),在Chrome中,我看到了iFrame的正确名称:name =“Hello”...但是警报会调用id。

为什么会这样?我错过了什么?

1 个答案:

答案 0 :(得分:1)

通过createElement创建iframe可以解决问题:

 function createFrame() {
        frame= document.createElement("iframe");
        frame.setAttribute("src", "https://website.ca/");
        frame.setAttribute("name", "Hello");
        frame.setAttribute("id", "frame");
        frame.frameBorder = 0;
        frame.style.width = 100 + "%";
        frame.style.height = 2300 + "px";
        document.getElementById("iframeHolder").appendChild(frame);

    }
    createFrame();

<div id="iframeHolder"> </div>

有点黑客,但它适用于这种情况。