0

我正在尝试运行此代码

String outputFile = "file:///C:/reports/1016.html";
Window.open(outputFile, "Test", "");
Window.open("http://www.bing.com/", "bing", "");

如您所见, outputFile 不是一个网络链接,而是一个文件。Chrome/firefox 似乎不想打开它,他们一直打开一个 about:blank 窗口。我以为我做错了,所以我在第三行添加了一个可以正常工作的实际网址。我在这里做错了什么?Window.open() 不能打开文件吗?

4

2 回答 2

2

我认为这是出于安全原因。

尝试使用禁用的安全性启动 chrome 浏览器,看看会发生什么:

chromium --disable-web-security

如果显示本地文件,您知道出于安全原因禁用了它。(而且你无能为力)。

也许 Web 调试器会显示警告 ( F12)

于 2013-08-09T22:07:26.737 回答
0

添加到 Christian Kuetbach 的答案:

  1. 大多数浏览器会出于安全原因阻止它,除非直接来自点击事件。(目前找不到支持该断言的链接,但值得一试)

    尝试通过用户单击打开 Window.open,它应该可以工作。

  2. 在同一个网站打开窗口应该没问题(同源策略)见https://developer.mozilla.org/en-US/docs/Web/API/window.open

编辑:对于#1: 'window.open' 被 Firefoxhttps://support.mozilla.org/en-US/kb/pop-blocker-settings-exceptions-troubleshooting?redirectlocale=en-US&redirectslug=Pop-up阻止+blocker 说:

单击鼠标或按键后是否显示弹出窗口?

无论弹出窗口阻止程序是否打开,某些事件(例如单击或按下某个键)都可能产生弹出窗口。这样 Firefox 就不会阻止网站需要运行的弹出窗口。

于 2013-08-10T20:46:42.877 回答