自动打开另一台显示器上的浏览器窗口

Automatically open browser window on another monitor

本文关键字:显示器 一台 窗口 浏览器      更新时间:2023-12-05

我在公司内部网上有一个网站,需要在2个监视器上显示。此时,用户登录并重定向到第一个页面,并指示单击某个链接在新窗口中打开另一个页面,然后将其拖到第二个监视器上。

我们希望用户登录,像往常一样重定向到第一个页面,但在最大化的浏览器窗口中,在另一个监视器上自动打开另一个页面。

通常我会拒绝这样做,但这是一个仅供内部使用的网站,我们的用户希望它能发生。

有办法做到这一点吗?我是一个html的家伙,除此之外的任何事情都超出了我的能力。

是的,你可以这样做,尽管它必须非常特别和以用户为中心,因为你必须为显式场景设置它。这也需要一些修补来调整你的位置和尺寸。

下面是一个使用window.open()方法的概念示例。很抱歉,你不可能只使用html/css。注意left和其他属性集,因为它们是您将要修改的内容。有关详细信息,请参阅文档。

CODEPEN

示例函数;

function iLikeToMoveItMoveIt() {
    window.open("http://www.stackoverflow.com", 
                "_blank", 
                "toolbar=yes, scrollbars=yes, resizable=yes, 
                 top=500, left=800, width=1000, height=1000");
}

以及一种启蒙;

<button onclick="iLikeToMoveItMoveIt()">
   HEY LET'S OPEN A WINDOW SOMEWHERE!
</button>

希望这能有所帮助,干杯。

附录:

在页面加载时关闭该功能。。

<script>
  window.onload = iLikeToMoveItMoveIt();
</script>

我有一个类似的任务——打开列表时,在其他监视器上显示详细信息。

我用localStorage解决了这个问题。我基本上在一个监视器上打开了localhost/sender,在另一个监视器中打开了localhost/receiver,当用户单击sender中的某个内容时,localStorage发生了更改,receiver中的侦听器处理了它(通过发送AJAX请求)。

举一个非常简单的例子,如果你在这个JSFiddle发送器中输入了一些东西,你应该会在JSFiddlereceiver中实时看到所做的更改(只需确保两者都"运行")。

我认为没有比这更简单的方法了,你需要处理全屏窗口和不同的分辨率等等。

确认无法再在第二个显示器上弹出新的浏览器窗口。

当我刚开始研究的时候。许多JavaScript论坛都展示了这样做的代码,并详细介绍了如何检测第二个监视器,该监视器的日期大多在2012年至2018年。所以我认为这个功能是可行的,这么多年过去了,它只会变得更容易实现。

然而,当我试图检测第二个显示器的宽度和高度时,无论我如何调整代码,它都找不到。我认为JavaScript函数名称可能已经更改,或者它变得依赖于浏览器。所以我一直在寻找和试验,但都没有成功。

最终,我尝试将弹出式浏览器窗口从当前显示器向左和向右推出,而不考虑第二个显示器的分辨率,然后我发现,无论你试图将其推多远,弹出式窗口都始终位于当前屏幕的左边缘或右边缘。这个形式良好的功能提示我,这个限制(不超过当前显示的边界)可能只是Windows平台浏览器中的一个内置功能。

知道了这一事实,近年来,朝着不同方向的进一步搜索给我带来了其他用户的体验,并证实了那些检测第二次显示的JavaScript功能在Windows 10平台上将不再工作——至少可以追溯到2019年的Windows 10平台。

也许这一限制现在被认为是安全的必要条件,因为浏览器主要处理来自互联网的未知用户,它自然应该被限制在允许检测和访问计算机属性的内容上。现在是2022年底,所以我可能会得出结论,这种在第二个显示器上弹出的实现是一条死胡同。

(我知道在大型百货公司的收银台上已经有了专门的签准设备,但这些设备基本上是由支付系统提供商提供的,需要购买和安装独立的软件/硬件/设备。这是不可取的,因为我们已经有了一个网络应用程序,可以从头到尾完全处理整个订购过程。欧r签准功能只是一项新要求。)

我考虑过Somrlik使用AJAX的解决方案,但它需要每5秒左右调用一次检查,这是一个相当大的工作量,因为在一整天的营业时间里,一个过程只发生5到10次(并非所有销售都需要签名)。此外,它还需要一个一直打开的虚拟网页,以便在面向客户的显示器上待命,该显示器大部分时间都应该是空白的。因此,这个解决方案可能不适用于我的情况。

我希望我对这一切都错了,有人可以给我指一种实现这一点的方法,因为我确实需要在面向客户的第二个显示器上弹出一个单独的网页,让他们在销售人员点击";注销";她销售电脑屏幕上订购页面上的按钮。