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() 不起作用