这个问题之前没有被问过,因为我已经广泛搜索了一个答案而且我正在打砖墙。
当我通过控制台运行此代码或超出onclick功能时,它可以通过打开facebook oauth对话框完美地工作,当它完成时它将关闭并重新加载原始页面。
var win = window.open('/auth/facebook','location=yes, scrollbars=yes, width=640, height=359', true);
var intervalID = setInterval(function(){
if(win.closed){
location.reload();
}
}, 100);
我的问题是在click()函数中它根本不起作用。
$(document).ready(function() {
var intervalID = null;
var win = null
$("#flogin").click(function(){
win = window.open('/auth/facebook','location=yes, scrollbars=yes, width=640, height=359', true);
intervalID = setInterval(function(){
if(win.closed){
location.reload();
}
}, 100);
});
});
对于你们所有人来说,这似乎是一个非常简单的问题,可能有一个简单的答案,但我似乎无法找到。谢谢你的帮助!
答案 0 :(得分:1)
正如您在评论中提到的那样,您正在使用<a> tag
使用preventDefault
来阻止默认操作
这应该有效
$(document).ready(function() {
var intervalID = null;
var win = null
$("#flogin").click(function(event){
event.preventDefault(); //prevents the default action
win = window.open('/auth/facebook','location=yes, scrollbars=yes, width=640, height=359', true);
intervalID = setInterval(function(){
if(win.closed){
location.reload();
}
}, 100);
});
});