Javascript DHTML、iFrame和IE
我有一段JavaScript,可以在DOM中插入/删除iframe。Chrome和FireFox中的一切都很漂亮,但iframe没有显示在IE中。下面的代码是创建和插入代码。当使用开发人员工具进行检查时,我可以看到iframe完全是DOM的一部分,正如我所期望的那样。关于什么可能导致它不显示的任何建议Javascript DHTML、iFrame和IE,javascript,html,internet-explorer,dhtml,Javascript,Html,Internet Explorer,Dhtml,我有一段JavaScript,可以在DOM中插入/删除iframe。Chrome和FireFox中的一切都很漂亮,但iframe没有显示在IE中。下面的代码是创建和插入代码。当使用开发人员工具进行检查时,我可以看到iframe完全是DOM的一部分,正如我所期望的那样。关于什么可能导致它不显示的任何建议 function getiFrame(target) { var frame = document.getElementById(target); if (null == frame)
function getiFrame(target) {
var frame = document.getElementById(target);
if (null == frame) {
frame = document.createElement("iframe");
frame.setAttribute("width", "100%");
frame.setAttribute("height", "1000px");
//frame.setAttribute("frameborder", "0");
frame.setAttribute("id", target);
frame.setAttribute("name", target);
frame.setAttribute("src", "http://dmi.dk");
} else {
frame.src = "http://dmi.dk";
frame.style.visibility = "visible";
}
return frame;
}
var frame = getiFrame(target);
var row = document.getElementById(contentRowId);
for (var i = 0; row.childNodes.length > 0; i++) {
row.removeChild(row.childNodes[0]);
}
row.appendChild(frame);
编辑:
为了澄清,我尝试直接设置属性(正如Tim Down所建议的),以上是我绝望尝试的结果
此外,在检查DOM时,我会得到一个完全有效的iframe标记:
<iframe propdescname="full" width="100%" height="1000" id="full" src="http://dmi.dk">
检查它还表明它正确地读取和解析了src()。我也可以检查该站点的DOM
所以让我困惑的是,当一切似乎都在运转的时候。什么可能会阻止它显示。有一个明显的问题:
frame = document.createElement("div");
应该是
frame = document.createElement("iframe");
此外,setAttribute
在IE中是不必要的、冗长的和容易出错的。请改用DOM属性:
frame.width = "100%";
frame.height = 1000;
//frame.frameBorder = 0;
frame.id = target;
frame.name = target;
frame.src = "http://vrk.dk";
Jim Coplien将其称为橡胶鸭图案。“在你咨询橡皮鸭之前,你不能问xx”。问别人意见时,谁还没有解决自己的问题 我正在编辑我的文章,说iframe在td中,我开始想我还没有确定它是真的。问题是我删除了td,并将iframe插入到tr中,IE在动态处理时与静态处理时处理方式不同
感谢收听,扮演“橡皮鸭”的角色。我的打字错误div/iframe没有什么区别。我已经更新了这个问题,使之更清楚。谢谢你指出这一点