3

好的,故事有点长,但希望你能忍受我,这样可能会有一些问题的背景:

我正在使用 ASP.NET 为门户开发注册部分,为了让事情变得更好,我决定从这里使用 bPopup将注册页面加载到调用页面(父页面)的 iframe 中。现在我需要一种在成功注册后关闭 iframe 的方法,所以从注册页面的代码隐藏(嵌套在 iframe 中)我尝试了允许我这样做的父级的 Javascript 函数,这是关闭 iframe 的函数由插件生成:

 function bPopup_close() {
         $(".bClose").closePopup();
     return false;
 }

这是 iframe 背后的代码(该函数将在提交时调用):

    ClientScript.RegisterOnSubmitStatement
        (GetType(), "Javascript", "javascript: window.opener.bPopup_close();");

我无法关闭弹出窗口。有趣的是,Firebug 告诉我,在我单击提交按钮后,window.opener 为空。这是否意味着父母确实已关闭?无论如何,弹出窗口仍然存在......

希望你们能就类似的事情分享一些见解?

4

2 回答 2

11

我可以看到 dinbror 已经在他的页面上回答了你:)

@fred:很高兴你喜欢它。您使用的是最新版本的 bPopup 吗?

解决方案:在打开弹出窗口的页面上创建一个函数:

函数 closeBPopup() { $(selector).bPopup().close() }

然后,只要您完成以下操作,就可以在 iframe 中触发它:

parent.closeBPopup();

于 2010-11-22T19:24:18.953 回答
3

半天后,我终于让它工作了:

ClientScript.RegisterStartupScript(GetType(), "blah", "<script type=\"text/javascript\">bclose(); < /script> ", false);

并且代码 bclose() 是:

    function bclose() {
        parent.$("#popup").bPopup().close();
        return false;
    }
于 2010-11-23T10:21:21.480 回答