Chrome 获取监视器计数

ezykj2lf  于 2023-03-10  发布在  Go
关注(0)|答案(3)|浏览(162)

我有一个Web应用程序,我想实现以下行为。
当您单击特定链接时:

  • 如果用户有多个显示器-在具有给定名称的窗口中打开URL。
  • 否则-将iframe的src属性更改为url的src属性。
    如何在JavaScript中检测监视器计数?

如果这是不可能的,只有Chrome的解决方案也可以工作,因为这是一个内部网应用程序。

hpxqektj

hpxqektj1#

正如其他人所说,这样做的唯一明智的方法是询问用户。允许这样做的建议以前曾被提出和拒绝过。多显示器设置在普通人群中并不是很常见,这就是为什么这一点被忽视的原因。
备选方案是:

  • 提示用户。
  • 要求用户运行一个浏览器扩展(不太有趣,但风险更大)。
  • 运行一个插件(也不是很有趣).
  • 通过WebkitJS之类的工具提供应用

总的来说-对于正常的网站,唯一的选择是提示用户。

irlmq6kh

irlmq6kh2#

这在目前的Javascript中是不可能的,你也许可以尝试通过计算屏幕的高度和宽度来猜测。
例如,如果屏幕widthheight * 1.78宽,那么这意味着它的宽高比超过16:9,那么他们可能使用的是双屏。
那么window.innerWidth会比screen.width更好吗?
除此之外,这是不可能的。

cotxawn7

cotxawn73#

来自未来的问候!
2023年,我们可以查一下

window.screen.isExtended;

是否有第二个显示器。然后我们可以使用

window.getScreenDetails();

以获得屏幕的数量、它们的显示细节(有很多)和它们的“左”坐标。2不过这需要用户授予权限。
使用此功能,您可以在特定屏幕上打开窗口。例如:

// If you run this on your left screen (0),
// the window will open on your right screen

async function openWindow(){
// Get screen info
const details = await getScreenDetails();
const secondScreen = details.screens[1];
const {left} = secondScreen;

// Open window
const winProps = `left=${left},top=100,width=640,height=480`;
const win = window.open(
  "https://www.google.com/",
  "My second screen window",
  winProps
);
}

openWindow();

请访问www.example.com了解更多https://developer.chrome.com/articles/multi-screen-window-placement/#the-window-management-permission

相关问题