【问题标题】:window.open() to another screen (second display)window.open() 到另一个屏幕(第二个显示)
【发布时间】:2018-12-18 09:17:13
【问题描述】:

我有这行 JavaScript 代码:

window.open('queue.html', 'QueueMonitor', 'toolbar=no,scrollbars=yes,resizable=yes,top=0,left=' + screen.availWidth);

预期的输出是在第二个显示器上打开一个弹出窗口 - 这在 Firefox 和 IE11 中可以正常工作,但在 Chrome、Opera 和 Edge 中则不行。我已经尝试寻找类似的问题,但我找不到解决方案。

你知道为什么吗?或者怎么做?

编辑 1

对不起,我没有把那个 but not in.... 放在那里,意思是弹出窗口显示在主显示器而不是第二显示器。

编辑 2

尝试添加 width=100,height=100,但它只给了我这个(在上述 3 个浏览器上): 您可以看到它位于 2 个屏幕之间 - 不是真正的一半,但主显示屏(左)上还剩下一些窗口边界。

【问题讨论】:

  • 我认为这些浏览器不支持window.open()的某些规范。
  • 它可能会在该浏览器中被阻止。弹出窗口阻止程序通常会阻止每个弹出窗口,这不是由直接用户操作触发的,例如单击按钮或链接。

标签: javascript window.open


【解决方案1】:

您能否在下面查看 window.open 的 specs 参数,让我们知道这是否对您有帮助:

  • 可调整大小:仅限 IE
  • 滚动条:仅限 IE、Firefox 和 Opera
  • 工具栏:仅限 IE 和 Firefox

【讨论】:

  • 这些参数是否与left 在其他浏览器上不起作用有关?
  • @dunli 您能否在 Chrome 中打开时检查 screen.availWidth 的值。它不应该是负数。
【解决方案2】:

像这样指定宽度和高度:

window.open('http://www.google.com/', 'name', 'width=400,height=320,toolbar=no,scrollbars=yes,resizable=yes,top=0,left=' + screen.availWidth);

我在 Google Chrome(版本 60.0.3112.113)的开发者控制台中对此进行了测试。


编辑

由于这个问题与在第二个显示器上显示新窗口特别相关,因此上述答案是不够的。正如我在评论中提到的,我建议您查看this question,因为它可能会对您有所帮助。

【讨论】:

  • 已经试过放宽高,第二个显示不上。我正在使用版本 71.0.3578.98
  • 等等。问题是它没有显示在第二台显示器上还是根本没有弹出窗口?
  • 抱歉,问题是它没有显示在第二台显示器上。不得不对我的问题进行编辑。
  • 我建议阅读这篇文章,它可能涵盖了您需要的内容。 stackoverflow.com/questions/16363474/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 2019-09-11
  • 2011-11-24
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
相关资源
最近更新 更多