这是一个简单的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。
为什么会这样?我错过了什么?
答案 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>
有点黑客,但它适用于这种情况。