在渲染iframes
时,我使用代码:
ifrm = document.createElement("IFRAME");
ifrm.style.width = "100%";
ifrm.style.height = 600+"px";
function makeFrame() {
document.body.appendChild(ifrm);
}
但是,每当我调用函数iframes
时,这会在makeFrame()
下方追加makeFrame()
。所以,如果我打电话给iframes
(比如说三次),那么我会比前一个提高三个{{1}}。如何防止这种情况并替换现有的而不是追加到最后一个?
答案 0 :(得分:0)
创建一个div。假设div id是iframecontainer 所以你的代码应该是:
<div id="iframecontainer">
<!-- Iframe goes here -->
</div>
现在只需使用javascript getElementById并在附加iframe之前将innerHTML设置为“”。
答案 1 :(得分:0)
最简单的答案:
如果您想尽可能少地更改代码,并且您确定在任何给定时间内您只能在页面上只有一个iframe
function makeFrame() {
oldiframe = document.getElementsByTagName("IFRAME")[0]
// getElementsByTagName will return an array (a list).
// Adding [0] will return the first (and, under our assumptions, only) element
ifrm = document.createElement("IFRAME");
ifrm.style.width = "100%";
ifrm.style.height = 600+"px";
document.body.replaceChild(ifrm, oldiframe);
}
答案 2 :(得分:0)
嗨@mikemxm我终于能够解决问题了。最终代码如下所示:
oldiframe = document.getElementsByTagName("IFRAME")[0];
ifrm = document.createElement("IFRAME");
ifrm.style.width = "100%";
ifrm.style.height = 600+"px";
function makeFrame() {
if(oldiframe == null)
document.body.appendChild(ifrm);
else
document.body.replaceChild(ifrm, oldiframe);
}
感谢对iframe的警告。您是否知道从外部网站呈现内容的更好方法/技术?可以有任何版权问题吗?感谢。