javascript - HTML/JavaScript : How to close iframe from parent page by id?

标签 javascript jquery html iframe

我有一个带有按钮的页面,用于创建 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/

相关文章:

javascript - 通过 jQuery AJAX 将字符串数组传递给 C# WebMethod

Javascript 标签导航

php - 绑定(bind) jQuery 网格?

html - Google Chrome 将视网膜图像显示为 css 背景图像而不是非视网膜图像

javascript - 重新触发动画

javascript - 如何使用javascript动态添加html类

javascript - 为什么下面的样式没有为这些元素分配设置值?

javascript - 从 MongoDB 中的模式内部返回一个 json

javascript - UTC 与 ISO 时间格式

c# - ASP.NET : Get the value from textarea