繁体   English   中英

在另一台显示器上自动打开浏览器 window

[英]Automatically open browser window on another monitor

我在我的公司 intr.net 上有一个网站,需要在 2 个显示器上显示。 此刻,用户登录并被重定向到第一页,并指示单击某个链接以在新的 window 中打开另一个页面并将其拖到他们的第二个显示器上。

我们想要的是用户登录,像往常一样被重定向到第一页,但另一个页面在最大化浏览器 window 的另一个显示器上自动打开。

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

有没有办法做到这一点? 我是一个 html 的人,除此之外的任何事情都超出了我的范围。

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

我用localStorage解决了它。 我基本上在一个监视器上打开了localhost/sender在另一个监视器上打开了localhost/receiver ,当用户点击sender某些内容时, localStorage发生了变化, receiver的监听receiver处理了它(通过发送AJAX请求)。

对于一个非常简单的示例,如果您在此JSFiddle发送器中输入内容,您应该看到在JSFiddle接收器中实时进行的更改 (只需确保“运行”它们两者)。

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

是的,您可以这样做,虽然它必须是非常特殊和以用户为中心的,因为您必须为显式方案设置它。 这也需要一些修修补补才能确保您的职位和规模。

这是使用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>

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

刚开始研究的时候。 许多 JavaScript 论坛都显示了执行此操作的代码,并详细说明了如何检测第二台显示器,这些显示器的日期大多是从 2012 年到 2018 年。所以我认为这个功能是可行的,而且这么多年过去了,它只会变得更容易实现。

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

最终,我尝试将弹出式浏览器 window 从当前显示器向左和向右推出,而不考虑第二个显示器的分辨率,然后我发现弹出式浏览器 windows 始终停留在左侧或右侧边缘当前屏幕,无论您尝试将其推到多远。 这个格式良好的功能给了我一个提示,这个限制(不超过当前显示的边界)可能只是 Windows 平台上浏览器的一个内置功能。

知道这个事实后,在不同方向的进一步搜索给我带来了近年来其他用户的经验,并确认那些检测第二个显示器的 JavaScript 功能将不再适用于 Windows 10 平台,至少可以追溯到 2019 年的 Windows 10 平台。

也许这种限制现在被认为是一种安全必需品,因为浏览器主要与来自 Inte.net 的未知用户打交道,它自然应该限制在允许检测和访问计算机属性的内容上。 现在是 2022 年年底,所以我可能会得出这样的结论:这种在第二个显示器上实现的弹出窗口是一条死胡同。

(我知道大型百货商店的收银台上已经有专门的签收设备,但这些设备基本上是由支付系统提供商提供的,需要购买和安装单独的软件/硬件/设备。这不是我们所希望的已经有一个 web 应用程序,它从头到尾完全处理整个订购流程。我们的签收功能只是一个新要求。)

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

我希望我的所有这些都是错误的,并且有人可以指出一种实现此方法的方法,因为我确实需要在面向客户的第二个显示器上弹出一个单独的 web 页面,以便他们在销售人员单击她的销售计算机屏幕上订购页面上的“退出”按钮。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM