强制 window.open() 在 chrome 中创建新选项卡

2023-12-19

我使用 window.open 来填充具有不同内容的新窗口。主要是来自自动化流程的报告和存储的 HTML。

我注意到 Chrome 在 window.open() 方面有一些非常不一致的行为。

我的一些调用将创建一个新选项卡(首选行为),一些调用会导致弹出窗口。

var w = window.open('','_new');
w.document.write(page_content);

page_content 只是来自 AJAX 调用的常规 HTML。报告在标题中包含一些信息,如标题、图标和一些样式表。

在 IE9 中,代码确实会导致出现一个新选项卡而不是弹出窗口,而 Chrome 则断然拒绝在新选项卡中显示相关内容。由于内容是敏感的业务数据,我无法将其发布在这里。如果可以的话我会回答问题。

我知道有些人会说这是用户的行为,但这是一个内部业务平台。我们没有时间培训所有用户如何管理弹出窗口,我们只需要它位于新选项卡中。哎呀,即使是一个新窗口也比弹出窗口更好,因为你无法在 Chrome 中停靠弹出窗口。更不用说任何弹出窗口阻止代码都不会影响它。

欣赏任何见解。


window.open 必须在由用户操作(例如 onclick)触发的回调中调用,以便页面在新选项卡而不是窗口中打开。

Example:

$("a.runReport").click(function(evt) {
    // open a popup within the click handler
    // this should open in a new tab
    var popup = window.open("about:blank", "myPopup");

    //do some ajax calls
    $.get("/run/the/report", function(result) {
        // now write to the popup
        popup.document.write(result.page_content);

        // or change the location
        // popup.location = 'someOtherPage.html';
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强制 window.open() 在 chrome 中创建新选项卡 的相关文章

随机推荐

  • 绑定到特定的IP地址和端口来接收UDP数据

    我正在尝试接收由 PlayCap 广播到网络地址 192 168 103 255 端口 3000 的 UDP 数据 http www signal11 us oss playcap http www signal11 us oss play
  • 如何对 redux 形式 FieldArray 状态的切片运行验证

    我正在运行与这里的示例非常相似的东西 http redux form com 6 0 5 examples fieldArrays http redux form com 6 0 5 examples fieldArrays 假设我想在每个
  • Java Spring Batch 中的 ETL 与 Apache Spark 基准测试

    我使用 Apache Spark Scala 已有 5 年多了 学术和专业经验 我一直发现 Spark Scala 是构建任何类型的批处理或流式 ETL ELT 应用程序的强大组合之一 但最近 我的客户决定将 Java Spring Bat
  • Android Matcher 和 Pattern 从链接中切出

    我有一个包含链接的字符串 ex 字符串的 我们喜欢吃巧克力 吃一份http t co 9BDZvcx59d http t co 9BDZvcx59d 所以如果我按原样显示这个字符串 它会是一样的 但如果我使用匹配器和模式来检测链接并为其着色
  • VTK 与真实 X 一起工作,与 Xvfb 一起崩溃

    我正在调试一个第 3 方 Python 脚本 该脚本使用 VTK 库实现无头图像处理 当使用常规 X 窗口会话运行时 它会按预期工作 窗口会瞬间闪烁 当针对 Xvfb 内存中的虚拟帧缓冲区 运行时 它会崩溃 脚本是这样的 省略了一些废话 i
  • 执行“if”条件“x”毫秒并停止“y”毫秒并重复该条件?

    我有一个程序 可以在程序运行期间连续测试 if 循环内的条件 但我想要这个如果条件在一段时间内 例如 5ms 变为 true 或 active 然后停用如果条件接下来的 10 毫秒 然后继续这个模式直到用户关闭程序 我不知道如何解决这个问题
  • Symfony2 中的系统 (SonataAdminBundle) 缺少请求的 PHP 扩展 intl

    我尝试安装沙箱 但从作曲家那里收到以下错误 加载包含包信息的 Composer 存储库 来自锁定文件的依赖项 您的要求无法解析为 一组可安装的软件包 问题1 Installation request for sonata project i
  • 溢出错误图

    我想做声音 音频和音乐处理方面的事情 在此之前 我创建了一个 10 秒扫描的样本信号 我有一个简单的脚本 必须绘制一些信号 第一个信号是一个简单的正弦波 第二次扫描 两者的频率都略低于奈奎斯特频率 所以没问题 代码 import impor
  • 修改每个方面的 x 轴标签

    我有这个图表 我想向每个标签添加文本N xx来表示观测值的数量 我知道如何做到这一点 并且我已经在没有面的图表上做到了这一点 当我在多面图表上尝试时 它不起作用 我在所有 3 个图表上的开盘价位上得到相同的 N 在受限制的图表上得到相同的
  • 返回 Django 中的附近位置

    我有一个 django 模型 它有一个名为的自定义属性LocationField class List models Model id models AutoField primary key True title models CharF
  • 退出按钮php

    我有这段代码 需要代码来添加注销按钮 任何人都可以写出用于注销用户的注销按钮的代码 我读了一些有关销毁会话的内容 但不知道如何编写代码 谢谢你
  • Mongoid 自定义 setter/getter 和 super

    我正在尝试修改属性 Mongoid 模型上的设置器 但与 ActiveRecord 不同 我无法调用 super 来让 Mongoid 实际设置属性 因为模型正在使用include Mongoid Document而不是一个子类Active
  • 条件格式单元格(如果在表的列中找到其值)

    我认为这会非常简单 COUNTIF Foo Bar A1 gt 0 将此应用于整个列 我认为会突出显示在表 Foo 的列栏中找到的任何单元格 但 Excel 告诉我我的公式包含错误 即使当我将其粘贴到单元格中时它确实给出了正确的 True
  • 如何在 Logstash 中漂亮地打印电子邮件正文的 JSON?

    我有一个 Logstash 配置 一直用来转发电子邮件中的日志消息 它用json and json encode解析和重新编码 JSON 日志消息 json encode用于漂亮地打印 JSON 这使得电子邮件看起来非常漂亮 不幸的是 随着
  • 如何查看 xcode5 上的完整构建日志?

    我收到 lipo 错误 我想查看导致该错误的所有步骤 xcode UI 只向我显示错误本身 这是作为文本文件定位的还是 xcode 5 可以如何显示完整的日志 转到 Xcode 中的日志导航器 选择您想要检查的版本 然后按住 Control
  • 反应应用程序。无法对尚未安装的组件调用 setState

    当我尝试更改输入字段上的值时 收到以下警告 无法对尚未安装的组件调用 setState 这是一个空操作 但它可能表明您的应用程序中存在错误 相反 分配给this state直接或定义一个state 具有登录组件中所需状态的类属性 我无法理解
  • GetObject 和 VB6 ActiveX exe

    The VB6 有关 GetObject 的帮助 http msdn microsoft com en us library aa445016 VS 60 aspx说 您不能使用 GetObject 来获取对使用 Visual Basic
  • 使用 Spring @RestController 处理带有 ZonedDateTime 参数的 HTTP GET

    我正在创建一个端点 它将接收日期以在服务器端进行一些过滤 代码如下所示 RequestMapping value test method RequestMethod GET produces MediaType APPLICATION JS
  • 如何将合并标签用于RelativeLayout root?

    我有一个扩展的自定义视图RelativeLayout并在 xml 文件中定义其内容 有RelativeLayout作为其根 我怎样才能避免有两个RelativeLayouts在我的自定义布局膨胀之后 我尝试使用merge标记作为我在 xml
  • 强制 window.open() 在 chrome 中创建新选项卡

    我使用 window open 来填充具有不同内容的新窗口 主要是来自自动化流程的报告和存储的 HTML 我注意到 Chrome 在 window open 方面有一些非常不一致的行为 我的一些调用将创建一个新选项卡 首选行为 一些调用会导