这是一个简单的 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/