我有这个JS代码:
window.open(loginurl, '_blank');
来自一个条件,例如:
if (userloggedin) {
//popup another page
} else {
window.open(loginurl, '_blank');
}
“loginurl”是我想在新窗口中打开的登录网址。
问题:这在大多数浏览器(Firefox 和 Chrome)中都会被阻止,因为它的行为类似于弹出窗口。
我想要一个仍然使用我的登录 URL 变量(不改变 if else 语句)的解决方案,在新窗口中打开它,而不会发出任何被阻止的弹出窗口的警告。
我正在寻找方法,但从未找到解决方案。如果有人可以提供一些提示或见解。我们将不胜感激。
Thanks.
打开的窗户是由window.open
当该功能在没有用户操作启动的情况下被触发时,将始终被视为被浏览器阻止的弹出窗口。
这意味着,例如,这些不会被阻止:
$('a').on('click.open', function(e) { e.preventDefault(); window.open('http://disney.com') });
Chrome 甚至允许其他事件触发弹出窗口,而 Firefox 不允许这样做:
$(document).on('keydown', function(e) { window.open('http://stackexchange.com') });
这将被阻止:
$(document).ready(function() { window.open('http://stackoverflow.com') });
所以,除非你触发window.open
在用户执行操作后,您永远无法确定您的窗口不会被阻止。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)