我在用着执行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(使用前将#替换为@)