允许 window.open 打开新窗口而不是弹出窗口

2024-01-12

我有这个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(使用前将#替换为@)

允许 window.open 打开新窗口而不是弹出窗口 的相关文章

随机推荐

  • 无法获取资源“https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom”

    我最近开始使用 React Native 但是根据伊朗制裁 gradle 无法构建我的第一个项目 所以我使用了 VPN 也舍餐服务 https shecan ir 但我收到以下错误 我阅读了 React Native 说明并按照它们设置了模
  • 如何清空 Drupal 缓存(无需 Devel)

    如何清空 Drupal 缓存 without开发模块 无需在新节点等中运行一些 PHP 语句 无需进入数据库本身 实际上 您如何指示最终用户清除其缓存 当您以管理员身份登录时 显然 并非该网站的每个用户都有权清除缓存 应该有一个页面 管理
  • 将 FontAwesome 5.x 与 PrimeFaces 6.2+ 结合使用

    我正在检查这个问题 如何将 webjars org 中的 Font Awesome 与 JSF 结合使用 https stackoverflow com q 18891768 811293蚂蚁这个问题 FontAwesome 与 Prime
  • 如何在 HTTP 标头中设置 REMOTE_USER?

    我的 Apache 设置有问题 我安装了一个部分接受外部身份验证的 Web 应用程序 我使用 Apache 来管理对我的应用程序网页的访问 如果身份验证成功 环境变量 REMOTE USER 将设置为用户名 然后 用户名通过 HTTP 标头
  • 是否可以在请求中刷新会话?

    我使用创建一个会话requests Session 由于某种原因 服务器端关闭了此连接 所以我必须重新连接 问题是 这个会话在很多地方都使用 所以我想知道是否可以重建 TCP 连接但保留会话对象 以便我仍然可以使用它 Example s r
  • Google javascript API 库 - 日历手表通知

    我正在尝试使用 JS 客户端库订阅日历事件通知 如下所示 gapi client load calendar v3 function var request gapi client calendar events watch calenda
  • 代码契约[Type]实现接口方法{Interface.Method},因此无法添加要求

    我有以下场景 public interface ISomething void DoStuff public class Something ISomething private readonly ISomethingElse someth
  • ValueTypes会导致GC吗?

    如果我有堆栈分配的值类型 什么会清理它们 GC只是堆吧 If这些值位于堆栈上 然后当当前堆栈帧被 弹出 通过返回的方法 时 这些值将被有效地清理 不会调用任何终结器或类似的东西 但内存会用完这些值将在下次堆栈达到那么高时重用 请注意 值类型
  • 使用 PHP 上传到 S3 的 RequestTimeout

    我在从我们的一台服务器上将文件上传到 S3 时遇到问题 我们使用 S3 来存储备份 所有服务器都运行 Ubuntu 8 04 PHP 5 2 4 和 libcurl 7 18 0 每当我尝试上传文件时 亚马逊都会返回 RequestTime
  • 查找近似重复和伪造的图像

    我正在使用感知哈希技术来查找接近重复和完全重复的图像 该代码非常适合查找完全相同的重复图像 然而 找到近似重复和略有修改的图像似乎很困难 由于它们的哈希值之间的差异分数通常类似于完全不同的随机图像的哈希差异 为了解决这个问题 我尝试将几乎重
  • Mysql 选择一列中具有相同值而另一列中具有不同值的行

    如果有人可以验证我的 SQL 查询 我将非常感激 对于以下数据集 MD5 UserPK CategoryPK ADCDE 1 7 ADCDE 1 4 ADCDE 1 7 dffrf 1 7 dffrf 2 7 dffrf 2 6 dffrf
  • 如何将编译器标志传递给 Rust 中的子包? [复制]

    这个问题在这里已经有答案了 我有板条箱A and B A依赖于取决于B and B有一个名为some feature 我可以建造B通过运行使用货物cargo build features some feature 但是我如何为A我可以选择启
  • 如何在 Perl 中将十六进制字符串转换为数字?

    我最近编写了一个脚本 它解析单个二进制字节月份字段的文本表示 不要问 在摆弄 sprintf 一段时间后 我放弃了并这样做了 our months qw x01 1 x02 2 x03 3 x04 4 x05 5 x06 6 x07 7 x
  • 输出在 REPL 中被 # 符号截断

    我编写了一个按预期工作的函数 但我不明白为什么输出是这样的 功能 datatype prop Atom of string Not of prop And of prop prop Or of prop prop XOR A And Not
  • 复制的变量改变了原来的变量?

    我在 Python 中有一个非常非常奇怪的简单问题 def estExt matriz erro 1 Determinar o vector X das solu es print Matrix after print matriz aux
  • 重新定义;不同的基本类型(typedef struct)

    当结构在不同的文件中定义时 我在尝试使结构正常工作时遇到了一些麻烦 据我所知 错误告诉我该结构被定义了两次不同的时间 我相信也许我可能需要在某个地方使用 extern 我尝试过尝试并在 Google 上寻求帮助 但没有成功 任何帮助将不胜感
  • 在 Windows 10 上通过 DISM 安装 IIS Windows 功能

    根据这个链接 https learn microsoft com en us previous versions windows it pro windows 8 1 and 8 hh824822 v win 10 我要安装 IIS Win
  • SSLHandshakeException:未找到证书路径的信任锚。仅适用于 Android API < 19

    我在设备 安卓SSL它似乎适用于我测试的所有 api gt 19 设备 我在 19 年前如何不断收到 未找到认证路径的信任锚 错误 我已经使用 keytool 创建了密钥库 并且似乎不是问题 因为它在某些设备上工作 这是我的代码 URL u
  • 如何堵住此类孔 3

    继从我的最后一个问题 https stackoverflow com questions 58035216 how to plug this type hole 2 我现在能够得到我想要的结果 但以一种完全邪恶的方式 使用unsafePer
  • 允许 window.open 打开新窗口而不是弹出窗口

    我有这个JS代码 window open loginurl blank 来自一个条件 例如 if userloggedin popup another page else window open loginurl blank loginur