关闭父页面上的子弹出窗口激发jQuery代码

Close child popup fire jQuery code on parent page

本文关键字:窗口 代码 jQuery 子弹      更新时间:2023-09-26

我正在用经典的asp进行一些twitter身份验证(我知道,但我无法更改)。我正在做的是通过带有window.open的jQuery/JS在弹出窗口中打开一个身份验证页面,该页面处理所有剩余的/oauth身份验证,然后返回到带有我需要的oauth密钥的同一页面。然后我想关闭弹出窗口,在不刷新页面的情况下启动一些jQuery隐藏/显示事件。

启动弹出窗口和验证脚本的代码:

    jQuery(document).ready(function() {
        jQuery("#twitter-button").live("click", function() {
        jQuery("#twitter-button").attr("value", "Processing");
        jQuery("#twitter-button").removeClass();
        jQuery("#twitter-button").addClass("twitter-button-processing");
        window.open('authentication.asp','_blank','width=600,height=400');
        return false;
        });
    });

然后,当我们被重定向回时,我在同一页面上的一些ASP中嵌套了以下代码:

if Session("OAUTH_TOKEN") <> "" And Session("OAUTH_TOKEN_SECRET") <> "" Then
%>
<script type="text/javascript" charset="utf-8" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
  window.close();
  // I'd like to show/hide new buttons on the parent page here
});
</script>
<%
End If

目标是用一类twitter按钮处理来更改按钮,该类按钮处理不显示任何内容,但我无法在父窗口中更改它。我试过放置jQuery('.twitter按钮处理').hide();在关闭后的jQuery(window).unload()函数中,但这没有产生正确的结果。

我尝试了在子窗口上绑定jQuery事件和在子窗口关闭时如何运行父窗口的函数的解决方案?但无济于事。任何帮助都将是美妙的。

所以我最终自己找到了答案。我没有重定向回变得混乱的同一页面,而是从twitter弹出窗口重定向到一个空白页面,其中有一些经典的ASP,可以检查一些会话变量。

主文件

var someFunction = function(data){
  //some functionality
}

asp中的Twitter弹出重定向窗口检查

window.opener.someFunction();
window.close();

这正是我需要做的,在关闭子窗口的同时调用父窗口上的JS。也许这会帮助其他人。