Javascript Twitter登录弹出窗口被阻止
我在我的angularjs网站上有一个twitter认证。我遇到的问题是,当我按下“使用twitter登录”时,应该会出现包含twitter登录内容的弹出窗口,但此弹出窗口被阻止。浏览谷歌没有给出任何有用的结果。下面是我的一些代码: HTML:Javascript Twitter登录弹出窗口被阻止,javascript,angularjs,twitter,popup,Javascript,Angularjs,Twitter,Popup,我在我的angularjs网站上有一个twitter认证。我遇到的问题是,当我按下“使用twitter登录”时,应该会出现包含twitter登录内容的弹出窗口,但此弹出窗口被阻止。浏览谷歌没有给出任何有用的结果。下面是我的一些代码: HTML: <a ng-show="!user.twitterUserLogged" ng-click="TwitterLogIn()" ... > <i class="fa fa-twitter-square"></i><
<a ng-show="!user.twitterUserLogged" ng-click="TwitterLogIn()" ... >
<i class="fa fa-twitter-square"></i></a>
$scope.TwitterLogIn = function() {
if(!$scope.user.twitterUserLogged){
TwitterTweetManager.getToken().then(function(token) {
$scope.user.TwitterToken = token;
var url = 'https://api.twitter.com/oauth/authenticate?oauth_token=',
params = 'location=0,status=0,width=800,height=600';
var twitter_window = window.open(url + $scope.user.TwitterToken.oauth_token,"twitter_window",params);
//if (twitter_window) {
var interval = window.setInterval(function() {
if (twitter_window.closed) {
window.clearInterval(interval);
$scope.TwitterLoginFinish();
}
}, 1000);
//}
});
}
};
谢谢大家!
找到有关window.open()函数的一些信息。是真的吗?弹出窗口阻止程序只允许onClick事件?因为在我的情况下,我有ng点击。这可能是问题的核心吗?我找到了问题所在。这是关于我的ng click上的异步事件。我在点击事件中从服务器获取令牌,在这种情况下,弹出窗口拦截器将阻止您的弹出窗口。所以现在我在我的活动之前得到一个令牌,如下所示:
var TwitterToken = TwitterTweetManager.getToken().$object;
和我的点击事件:
$scope.TwitterLogIn = function() {
if(!$scope.user.twitterUserLogged && TwitterToken){
$scope.user.TwitterToken = TwitterToken;
var url = 'https://api.twitter.com/oauth/authenticate?oauth_token=',
params = 'location=0,status=0,width=800,height=600';
var twitter_window = window.open(url + $scope.user.TwitterToken.oauth_token,"twitter_window",params);
var interval = window.setInterval(function() {
if (twitter_window.closed) {
window.clearInterval(interval);
$scope.TwitterLoginFinish();
}
}, 1000);
}
};