我有一个带有按钮的页面,用于创建 iframe 并将其附加到 div:
function createIFRAME() {
$.get("../../../GetIframeID", function(data){
alert(data);
ifrm = document.createElement("IFRAME");
ifrm.setAttribute("id", data);
ifrm.setAttribute("src", "chat.html");
//ifrm.setAttribute("scrolling", "no");
ifrm.setAttribute("frameborder", "0");
ifrm.style.width = 304+"px";
ifrm.style.height = 284+"px";
document.getElementById("content").appendChild(ifrm);
});
}
使用具有静态属性的 servlet 确保 iframe id 的唯一性。
问题:每个创建的页面 (chat.html) 都包含一个用于关闭页面的按钮。我找到了从父页面关闭 iframe 的脚本,但我不知道如何获取特定 iframe 的 id。
function closeIframe() {
var iframe = document.getElementById(id);
iframe.parentNode.removeChild(iframe);
}
关闭 iframe 时,我使用页面“chat.html”:
<input id="closeButton" type="image" src="../../../images/closeButton.png" onclick="javascript: window.parent.closeIframe()"" />
如何获取特定 iframe 的 ID,以便使用上述函数关闭它?
最佳答案
解决方案
我已经更改了创建 iframe 的函数并使其像这样(我已将类似 id 的参数发送到“chat.html”):
function createIFRAME() {
$.get("../../../GetIframeID", function(data){
alert(data);
ifrm = document.createElement("IFRAME");
ifrm.setAttribute("id", data);
ifrm.setAttribute("src", "chat.html?id="+data);
//ifrm.setAttribute("scrolling", "no");
ifrm.setAttribute("frameborder", "0");
ifrm.style.width = 304+"px";
ifrm.style.height = 284+"px";
document.getElementById("content").appendChild(ifrm);
});
}
我修改了关闭框架的按钮,如下所示:
<input id="closeButton" type="image" src="../../../images/closeButton.png" onclick="closeIFRAME()" />
现在我有两个函数:一个是在“chat.html”中找到的,它的作用是从 URL 获取页面的 id,并将其作为参数发送给位于 iframe 父级中的第二个函数。
函数 closeIFRAME()(来自“chat.html”):
function closeIFRAME() {
alert("1");
var param1var = getQueryVariable("id");
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
}
parent.closeIframe(param1var);
}
函数 closeIframe(id) (来自 iframe 的父级):
function closeIframe(id) {
var iframe = document.getElementById(id);
iframe.parentNode.removeChild(iframe);
}
感谢大家的支持!
关于javascript - HTML/JavaScript : How to close iframe from parent page by id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29005239/