javascript - setAttribute iFrame 名称和 Chrome

标签 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 );

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

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

最佳答案

通过 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>

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

关于javascript - setAttribute iFrame 名称和 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19458395/

相关文章:

javascript - 通过appendChild()可以添加哪些JS对象?

javascript - 更改对 vue 实例的引用

javascript - 为什么 Chrome 在使用 "fetch()"时发送空正文,但 Edge 正确发送正文

javascript - 如何保护chrome打包的app源代码?

javascript - 当点击chrome扩展中的<a>链接时,popup.html如何保持打开状态?

css - 用作背景图像的SVG会丢失嵌入图像吗?

google-chrome - Chrome 强制 HTTPS

javascript - 更改 URL 时如何更新 AngularJS 指令?

javascript - 检测水平 ul 内的换行符

javascript - 将类添加到同位素中的过滤项目和隐藏项目。按钮不是复选框