相关疑难解决方法(0)

检测Chrome中阻止的弹出窗口

我知道javascript技术可以检测弹出窗口是否在其他浏览器中被阻止(如本问题的答案所述).这是基本测试:

var newWin = window.open(url);

if(!newWin || newWin.closed || typeof newWin.closed=='undefined')
{
    //POPUP BLOCKED
}
Run Code Online (Sandbox Code Playgroud)

但这在Chrome中无效.弹出窗口被阻止时,永远不会到达"POPUP BLOCKED"部分.

当然,测试工作到一定程度,因为Chrome实际上并没有阻止弹出窗口,而是在右下角的一个微小的窗口中打开它,列出"阻塞"弹出窗口.

我想做的是能够判断弹出窗口是否被Chrome的弹出窗口阻止程序阻止.我试图避免浏览器嗅探,以支持功能检测.有没有办法在没有浏览器嗅探的情况下做到这一点?

编辑:现在我已经尝试利用的newWin.outerHeight,newWin.left以及其他类似性质的做到这一点.当弹出窗口被阻止时,Google Chrome会将所有位置和高度值返回为0.

不幸的是,即使弹出窗口实际打开了一段未知的时间,它也会返回相同的值.经过一段神奇的时期(在测试中几秒钟),位置和大小信息将作为正确的值返回.换句话说,我仍然没有更接近解决这个问题.任何帮助,将不胜感激.

javascript google-chrome popup

100
推荐指数
6
解决办法
8万
查看次数

防止弹出窗口被阻止

我在页面加载的代码中使用Facebook登录方法,但是当我执行此代码时,弹出窗口阻止程序会关闭Facebook权限窗口.

如何在Javascript不需要在弹出窗口阻止程序中例外的情况下打开此窗口?

以下是我的代码:

FB.login(function(response)
{
    if(response.session!=null)
    {
        window.location.href='http://example.com';
    }
},
{ perms: 'email,user_birthday,publish_stream' });
Run Code Online (Sandbox Code Playgroud)

javascript facebook popup

12
推荐指数
5
解决办法
3万
查看次数

Facebook登录按钮重定向到MS Edge上的空白页面

我正在使用登录按钮进行共享.按钮和共享功能适用于除MS Edge之外的所有浏览器.它曾经在Edge 25上工作(我目前在Edge 38上).

问题是当我点击登录按钮时,会出现一个登录弹出窗口,我可以在其中输入我的凭据.一旦输入并且我尝试登录,弹出窗口不会关闭并重定向到此地址:

https://www.facebook.com/v2.1/dialog/oauth?app_id=141515299765971&auth_type=&channel_url=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FlY4eZXm_YWu.js%3Fversion%3D42%23cb%3Df2de29c1e9204f4%26domain%3Dikeabuilds.sandbox3.2020.net%26origin%3Dhttp%253A%252F%252Fikeabuilds.sandbox3.2020.net%252Ff1deb23126bcc0c%26relation%3Dopener&client_id=141515299765971&display=popup&domain=ikeabuilds.sandbox3.2020.net&e2e=%7B%7D&locale=en_US&logger_id=80452c59-88a0-7681-0f2c-ac690c1d62b8&origin=1&redirect_uri=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FlY4eZXm_YWu.js%3Fversion%3D42%23cb%3Df1aa391653df35c%26domain%3Dikeabuilds.sandbox3.2020.net%26origin%3Dhttp%253A%252F%252Fikeabuilds.sandbox3.2020.net%252Ff1deb23126bcc0c%26relation%3Dopener%26frame%3Df7b23e2a9aa328&ref=LoginButton&response_type=none%2Ctoken%2Csigned_request&scope=publish_actions&sdk=joey&seen_revocable_perms_nux=false&version=v2.1
Run Code Online (Sandbox Code Playgroud)

我也不被认为已登录.我在网上搜索了很多,甚至阅读了有关登录按钮的文档,除了只有一个解决方法之外没有找到任何东西.它包括将facebook url添加到windows的Internet选项中的可信站点.它不是一个可行的解决方案,因此对我来说不是一个解决方案.图像是facebook登录html页面的代码,空白重定向页面和包含登录按钮的页面.我还有一个.js页面,其中包含所有与Facebook相关的功能但不适合一张图片,如果需要,我会提供它.到底是怎么回事?

facebook登录按钮:

重定向链接:

包含facebook登录按钮的页面的html代码:

javascript facebook facebook-javascript-sdk facebook-login microsoft-edge

12
推荐指数
1
解决办法
879
查看次数