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

发布于 2024-10-04 03:47:58 字数 710 浏览 4 评论 0原文

好的,这个故事有点长,但希望您能耐心听我说,以便了解问题的一些背景:

我正在使用 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 为空。这是否意味着父级确实已关闭?不管怎样,弹出窗口仍然存在......

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

Okay, the story is abit long but hope you can bear with me so that there could be some background to the problem:

I'm developing the registration section for a portal using ASP.NET and to make things nice,
I decided to use bPopup from here to load the registration page into the iframe of the calling page (parent page). Now I need a way to close down the iframe after a successful registration so from the codebehind of the registration page (nested in the iframe) I tried a Javascript function from the parent that allows me to do so, here's the function to close the iframe generated by the plugin:

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

and here's the code behind from the iframe (the function will be called on submit):

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

I wasn't able to close the popup. Interestingly, Firebug showed me that after I clicked the submit button, window.opener was null. Does that mean that the parent was indeed closed? Anyway the popup was still there...

Hope you guys could share some insights on anything similar?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

゛时过境迁 2024-10-11 03:47:58

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

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

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

函数 closeBPopup() {
$(选择器).bPopup().close() }

然后你可以在你的内部触发它
每当你完成操作时 iframe
你的东西:

parent.closeBPopup();

I can see that dinbror already answered you on his page :)

@fred: Glad you like it. Are you using
the newest version of bPopup?

Solution: Create a function on the
page which opens the popup:

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

Then you can trigger it inside your
iframe whenever you are done doing
your stuff with:

parent.closeBPopup();

傻比既视感 2024-10-11 03:47:58

折腾了半天,终于搞定了:

ClientScript.RegisterStartupScript
(GetType(), "blah", "<脚本类型=\"text/javascript\">bclose(); ", false);

代码 bclose() 是:

 函数 bclose() {
        父级.$("#popup").bPopup().close();
        返回假;
    }

After half a day, I finally got it working with:

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

and the code bclose() is:

    function bclose() {
        parent.$("#popup").bPopup().close();
        return false;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文