【问题标题】:open new window using window.open by "Post" parameters使用 window.open 通过“Post”参数打开新窗口
【发布时间】:2018-07-09 10:32:10
【问题描述】:

我想使用 window.open() 打开一个新窗口。但问题是我不想向用户显示 URL,所以我必须为此使用 POST URL。但是 window.open() 函数会打开新窗口并在 URL 栏中显示 URL。我必须隐藏 URL。

这里是例子:

window.open(URL,"_blank",'status=0,toolbar=0,resizable=0,menubar=0,titlebar=0,width=1180,height=770');

【问题讨论】:

  • <form method="post" action="/yourserver" target="_blank">
  • 不,伙计。我正在使用 Jquery 打开新窗口。不是表单标签。请检查示例。
  • 如果jQuery 则使用$.post(),并在最后打开您的窗口。
  • 这是一项重要的安全功能,因为您永远无法确定是什么弹出了那个额外的窗口。例如,可能是一段试图窃取您的登录详细信息的恶意代码。通过显示地址栏,用户可以验证他们正在查看的内容以及他们的连接是否安全。这取决于浏览器如何显示您的内容以及您可以进行哪些自定义。如果您想完全控制 UI,请使用其他技术并开发桌面/移动应用程序而不是 Web 应用程序。

标签: javascript jquery window


【解决方案1】:

不,您不能在现代浏览器中隐藏地址栏。

location=no 参数将不起作用。 请参阅 MDN 文档。 https://developer.mozilla.org/en-US/docs/Web/API/Window/open

在 Firefox 3 中,dom.disable_window_open_feature.location 现在默认为 是的,强制显示位置栏,就像在 IE7 中一样。

location 参数在 Google Chrome 中也始终处于启用状态(意味着 location=yes)。


但你可以分配一个虚假的 URL:

var win = window.open('/path/page.htm');
win.addEventListener('DOMContentLoaded', function () {
    win.history.replaceState(null, null, '/fake.htm');   // must be same domain (or ignore domain)
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    相关资源
    最近更新 更多