【问题标题】:Window.open alternativeWindow.open 替代
【发布时间】:2020-03-02 17:15:39
【问题描述】:

我想使用 window.open 在后台打开浏览器 但是那个新浏览器不应该是可见的 或者请提出 window.open 的任何替代方案

任何帮助都会很受欢迎。

【问题讨论】:

  • 请分享您用来打开窗口的代码。
  • 你能解释一下“那个新浏览器不应该是可见的”是什么意思吗?你的字面意思是看不见的窗户吗?或者只是隐藏在现有窗口的后面(所谓的“pop-under”)?如果是后者:这些天浏览器非常擅长防止弹出式窗口,因为它们经常被用于恶意目的。

标签: javascript browser controls


【解决方案1】:

但是那个新浏览器不应该是可见的

您无法使用基于浏览器的 JavaScript(或 HTML,就此而言)做到这一点。

可以在您的代码已在其中运行的窗口中拥有一个零高度 iframe。当我需要一个可生成可下载文件的表单目标时,我已经这样做了:我以零高度 iframe 为目标,当响应返回时,系统会提示用户将其保存在某处。 (我这样做而不是使用新的空白窗口来避免弹出用户不会用于任何事情的窗口,尤其是因为在我这样做时该窗口在 IE 中并没有消失。 )


如果“不可见”是指它应该隐藏在现有窗口的后面(所谓的“背后弹出”):如今,浏览器非常擅长防止背后弹出,因为它们已经经常被用于恶意目的。

【讨论】:

  • 我认为提问者希望在打开新窗口时不关注新窗口。
  • @JennisVaishnav - 我想这是对“不应该可见”的一种可能解释。 :-) 我采取了更字面的解释。
  • 实际上我的要求是,在我的网站中,我已经集成了第三方网站 API。所以当我登录我的网站时,它也应该自动登录该方网站。对于该自动登录,我使用了 window.open 并传递了第三方网站 url
  • @T.j Crowder 无法使用 iframe,因为第三方启用了 CROS
  • @HemantNaringhani - iframes 可以是跨域的,您只是不能与他们交谈。什么是“CROS”?你是说CORS吗? (就这样做而言,他们为您的来源启用了 CORS 实际上对您来说是一件好事。)
猜你喜欢
  • 2015-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多