任何人都可以从子iframe中关闭Jquery插件bPopup生成的弹出窗口?

时间:2010-11-22 16:31:21

标签: javascript jquery modalpopups bpopup

好的,这个故事很长,但希望你能忍受我,以便有一些背景可以解决这个问题:

我正在使用ASP.NET开发门户网站的注册部分并使事情变得更好, 我决定使用here中的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为空。这是否意味着父母确实关闭了?无论如何弹出窗口还在那里......

希望你们能分享一些类似的见解吗?

2 个答案:

答案 0 :(得分:11)

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

  

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

     

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

     

function closeBPopup(){   $(selector).bPopup()。close()}

     

然后你可以在你的内部触发它   iframe什么时候做完   你的东西:

     

parent.closeBPopup();

答案 1 :(得分:3)

半天后,我终于得到了它:

  

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

,代码bclose()是:

    function bclose() {
        parent.$("#popup").bPopup().close();
        return false;
    }