打开一个新选项卡/窗口并向其中写入一些内容?

2023-11-30

我在用着执行JS在 Firefox 中编写和测试 Javascript 代码。我想打开一个新选项卡/窗口并向其写入一些内容,我尝试过

var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var win = wm.getMostRecentWindow("navigator:browser");
printWindow = win.open("about:blank");
printWindow = wm.getMostRecentWindow("navigator:browser");
printWindow.gBrowser.selectedBrowser.contentDocument.write('hello');

And

myWindow=window.open('','','width=200,height=100')
myWindow.document.write("<p>This is 'myWindow'</p>")
myWindow.focus()

但是我总是收到这个错误

[例外...“操作不安全。”代码:“18”ns结果: “0x80530012(安全错误)”

有什么办法可以解决这个异常吗?


Chrome、Firefox(有一些例外)、IE 和 Edge(以及可能启动的其他浏览器)中已阻止数据 URL 的顶级导航。它们显然常用于网络钓鱼攻击,主要浏览器供应商认为其危险超过了合法用例提供的价值。

This Mozilla 安全博客文章解释说 Firefox 将阻止

  • Web page navigating to a new top-level data URL document using:
    • window.open("data:…");
    • window.location = "data:…"
    • 点击<a href="data:…">(包括 ctrl+click、‘open-link-in-*’等)。
  • Web page redirecting to a new top-level data URL document using:
    • 302 重定向到"data:…"
    • 元刷新到"data:…"
  • 外部应用程序(例如 ThunderBird)在浏览器中打开数据 URL

但不会阻止

  • 用户显式输入/粘贴"data:…"进入地址栏
  • 打开所有纯文本数据文件
  • Opening "data:image/*"在顶级窗口中,除非它是"data:image/svg+xml"
  • Opening "data:application/pdf" and "data:application/json"
  • 下载数据:URL,例如‘链接另存为’"data:…"

您还可以阅读提议弃用并删除 Chrome 中数据 URL 的顶部框架导航并查看当前 Chrome 状态表明该浏览器已被删除.

至于如何在新选项卡或窗口中实际打开 HTML,这应该足够了:

var tab = window.open('about:blank', '_blank');
tab.document.write(html); // where 'html' is a variable containing your HTML
tab.document.close(); // to finish loading the page

请注意,至少在 Chrome 中,通过 document.write 注入的外部脚本可能无法在较慢的连接上加载。这可能与这里无关,但需要注意。

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

打开一个新选项卡/窗口并向其中写入一些内容? 的相关文章

随机推荐

  • 使用 C 外部指针的 R 内存泄漏

    我试图在包中使用外部指针 但遇到了一个问题 似乎终结器没有被调用并且内存泄漏 下面是这个问题的一个极其人为的例子 include
  • 如何根据自定义规则对Excel项目进行分组?

    我有一组数据 网站管理员工具搜索查询 位于 Excel 中 具有以下标题 Query Impressions Clicks Date 谷歌电子表格示例here 我想添加一个名为的额外列Category并根据将在 A 列上搜索字符串的自定义规
  • 如何在动态数据透视表上显示最小值和最大值

    我从 dt table 连接与 dt k 创建了一个数据透视表 table dt k id k name k ott 1 item 1 ss 2 item 2 ss 3 item 3 ww 4 item 4 dd 5 item 5 asa
  • jQuery悬停功能超时

    我目前正在使用下面的代码 使用 jQuery 和悬停函数在用户将鼠标悬停在图像上时淡入 标题 元素 这在桌面浏览器上完美运行 但是当使用 iPad 等移动触摸设备进行测试时 需要用户点击图像来触发悬停功能 标题会按预期淡入 但保持活动状态
  • 将大字符串值设置为 CLOB 时抛出“PLS-00172:字符串文字太长”错误

    我有一个包含 CLOB 字段的存储过程 当我调用具有较大值 超过 33K 个字符 的存储过程时 出现错误 PLS 00172 字符串文字太长 我的存储过程 create or replace procedure P c clob is be
  • 如何在 Cloud Firestore 中使用文档 ID 执行集合组查询

    几天前 我将我的应用程序帖子从实时数据库移至云 Firestore 因为 Firestore 显然具有更灵活的查询 我一直在修改我的代码以使用 firestore 作为新数据库 现在我遇到了一个问题 如何检索 帖子 集合中具有包含特定命名文
  • 如何序列化控件

    我们有一个应用程序 其中包含 xml 文件形式的数据库 它具有客户端服务器架构 所以这里服务器将使用dataset从xml文件中读取数据并将其存储在xml模式中 然后服务器将序列化数据并将其传递给 UI 客户端 因此 UI 数据通过使用左侧
  • 如何使用 Ansible 在远程服务器上执行 shell 脚本?

    我计划使用 Ansible playbook 在远程服务器上执行 shell 脚本 空白test sh文件 touch test sh 剧本 name Transfer and execute a script hosts server u
  • Ember JS:如何导入 Material 组件 Web JS

    我正在尝试将 Material Components Web MDC Web 与 EmberJS 应用程序一起使用 我已经安装了material components web与纱线 yarn add material components
  • 贝宝创建定期配置文件,显示下一个付款日期与配置文件开始日期相同

    创建的定期贝宝配置文件显示的下一个付款日期与配置文件开始日期相同 我认为它应该显示到下个月的下一个付款日期 以下是我发送以创建配置文件的数组格式 Array 0 gt 1 gt AMT 9 99 2 gt CREDITCARDTYPE Vi
  • 用户控件的子依赖对象上的绑定不起作用

    我正在尝试让绑定在用户控件的子对象上工作 Xaml 看起来像这样
  • Azure DevOps 托管代理 - 将工具(PS 模块)添加到代理

    我想知道是否有一种简单的方法可以将额外的工具合并到默认的 Microsoft 托管代理池之一 特别是 VS2017 中 基本上 我想添加一些默认情况下未安装的额外 ARM powershell 模块 因为仅安装了核心模块集 即我希望利用一些
  • 查询以检查图中是否存在仅访问一次边的循环

    如何编写在我的图上运行的查询 如果没有路径仅穿过每个边一次并返回到起点 则输出 假 我正在使用以下示例图 g TinkerGraph open traversal g addV property id blue as b addV prop
  • 如何从 CSR 创建自签名代码签名证书?

    标题说明了一切 我能找到的所有文章要么是关于生成自签名 SSL 证书 要么是不考虑 CSR 我的要求很简单 生成一个自签名代码签名证书 我可以将其与 CSR 中的signtool exe 一起使用以进行测试 我希望这个问题是重复的 但我找不
  • jsp中如何进行子字符串化?

    有没有一种方法可以使用 struts2 技术在 JSP 文件中进行子字符串化 我的意思是 struts2有自己的taglib并且也使用ognl 如何从堆叠值或 bean 值中获取子字符串 http java sun com products
  • 一个 API 代理调用两个不同的目标端点

    我刚刚开始使用 Apigee 我想创建一个 API 代理 它将根据 if 条件调用两个目标端点 我已经创建了一个 API 并向其中添加了资源 但问题是在这种情况下我得到了两个 API 如果type abc 目标点应该是target1 如果
  • 伪造 RS232 串口

    我正在开发一个项目 其中有许多硬件传感器通过 RS232 串行端口连接到部署机器 但是 我正在一台没有物理 RS 232 串行端口的机器上进行开发 但我想制作一个可以连接并输出数据的假串行端口 目的是伪造来自硬件传感器的输入 有谁知道在 W
  • 如何以编程方式从证书中提取信息?

    我已经生成了一个证书 但我希望能够从证书中提取信息 例如国家 地区 有效性 公钥等 我必须将从证书中检索到的信息与我存储在 C 程序中的其他信息进行比较 我知道如果我使用这样的函数 它会打印证书信息 void print certifica
  • 使用 PHP 删除 url

    我只想删除锚标记和实际网址 例如 a href http www example com test www example com a 会成为test Thanks 我经常使用 string preg replace
  • 打开一个新选项卡/窗口并向其中写入一些内容?

    我在用着执行JS在 Firefox 中编写和测试 Javascript 代码 我想打开一个新选项卡 窗口并向其写入一些内容 我尝试过 var wm Components classes mozilla org appshell window