我在经典的asp中做了一些twitter认证(我知道,但我不能改变它)。我正在做的是通过jQuery / JS在弹出窗口中打开一个身份验证页面,其中window.open处理所有其余/ oauth身份验证,然后使用我需要的oauth键返回到同一页面。然后我想关闭弹出窗口并触发一些jQuery hide / show事件而不刷新页面。
启动弹出窗口和身份验证脚本的代码:
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-button-processing显示none来更改按钮,但我无法在父窗口中进行更改。我尝试过放置jQuery('。twitter-button-processing')。hide();在关闭后的jQuery(窗口).unload()函数中,但这并没有产生正确的结果。
我尝试了Binding jQuery event on a child window和How to run function of parent window when child window closes?的解决方案无济于事。任何帮助都会很棒。
答案 0 :(得分:1)
所以我最终找到了自己的答案。我没有重定向回到变得混乱的同一页面,而是从twitter弹出窗口重定向到一个空白页面,其中包含一些检查一些会话变量的经典ASP。
主文件
var someFunction = function(data){
//some functionality
}
asp检查中的Twitter弹出重定向窗口
window.opener.someFunction();
window.close();
通过在关闭子窗口时调用父窗口上的JS,我完全可以做到这一点。也许这会帮助别人。