window.open 在 Chrome 中不起作用

Posted

技术标签:

【中文标题】window.open 在 Chrome 中不起作用【英文标题】:window.open not working in chrome 【发布时间】:2015-02-17 15:28:24 【问题描述】:

开发一个 Cordova PhoneGap 应用程序,我尝试在单击按钮后弹出一个用于 facebook 登录的窗口。该弹出窗口在 ios 设备上运行良好,但在使用 Chrome 进行调试时,没有任何反应,尽管弹出窗口阻止程序已停用。 (我是 web 开发方面的初学者,我找不到合适的解决方案来解决我的问题搜索数小时......)

$("#social_login_buttons").append('<p><a class="btn-auth btn-facebook large" href="#" onclick="fblogin.init()">' + localize.signInWith[common.lang] + '<b>Facebook</b></a></p>');


fblogin.init = function() 

    var authorizeUrl = fbAuthorizeUrl
    + "client_id=" + fbClientId
    + "&redirect_uri=" + fbRedirectUri
    + "&display=" + fbDisplay
    + "&response_type=token"
    + "&access_type=online"
    + "loginMethodName=loginWithFacebook"
    + "&scope=publish_stream,email";


    var me = this;
    var ref = window.open(authorizeUrl, '_blank', 'location=no,clearcache=yes');
 //code ommitted

【问题讨论】:

_blank 是一个奇怪的窗口名称。 可能是chrome跨域策略webdavsystem.com/ajax/programming/cross_origin_requests @ceejayoz _blank 正在打开一个新窗口。 @Donte'Trumble Huh,显然是 To open a new window on every call of window.open(), use the special value _blank for strWindowName. 这对我来说是新的! 是的,我明白了。我不知道他为什么这样做,因为默认情况下它是 window.open() 打开一个新窗口。我猜他只是想重新确保它打开一个新窗口。如果你去这里w3schools.com/jsref/met_win_open.asp。它说他可以做到,但这是多余的。 【参考方案1】:

这是一个安全问题。 chrome 不允许脚本打开新窗口。唯一的方法是将其作为用户操作的一部分,例如点击。

【讨论】:

以上是关于window.open 在 Chrome 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 通过 s-s-rS 2008 R2 调用时,window.open 在 IE 中不起作用

在文档就绪事件发生时,window.open 在 iphone 中不起作用

在 Android 中的 window.open() 之后 setInterval() 不起作用

Chrome 意图在 Android Chrome 中不起作用

为啥我的链接颜色关键帧动画在 Chrome 中不起作用?

@font-face 在 Firefox 中不起作用 [重复]