火狐量子版于2017年11月14日终于发布了。引用自这个链接的话:
这个想法非常简单。如果检测到两个或更多的屏幕,则每次启动Firefox都会以全屏模式在每个监视器上打开一个新窗口。我可以全屏,但是遇到了在另一个监视器上打开并检测连接的屏幕数量的问题。
使用
显然,我上面的解决方案是为两个显示器硬编码的,并将“left”参数设置为1366像素,因此如果屏幕分辨率不等于1366x768或者有多于两个显示器连接,则该解决方案将无法正常工作。
因此,是否有任何API或更好的方法来检测连接了多少个显示器并检查它们的分辨率?Web扩展API是否具有检测多个显示器和分辨率值的功能?如果没有,有哪些可能的解决方法?
使用Firefox 57 Quantum和Web Extensions API,我想开发一个能够在多个屏幕上运行的扩展程序。这个扩展程序将用于显示多个屏幕仪表板。过去,你可以使用三种不同的系统之一来开发Firefox扩展程序:XUL/XPCOM叠加、引导式扩展或Add-on SDK。到2017年11月底,Web Extensions API将成为开发Firefox扩展程序的唯一方式,而其他系统将被弃用。
这个想法非常简单。如果检测到两个或更多的屏幕,则每次启动Firefox都会以全屏模式在每个监视器上打开一个新窗口。我可以全屏,但是遇到了在另一个监视器上打开并检测连接的屏幕数量的问题。
使用
browser.windows
API来创建另一个新标签页,以下是一些代码片段:getCurrentWindow().then((currentWindow) => {
let mirror1 = browser.windows.create({
url: "http://172.20.12.211:8080/ivi",
state: "fullscreen"
});
mirror1.then(() => {
browser.windows.remove(currentWindow.id);
var updateInfo = {
state: "fullscreen"
};
let mirror2 = browser.windows.create({
url: "http://172.20.12.211:8080/ivi",
state: "fullscreen"
});
mirror2.then((nextWindow) => {
var updateInfo = {
left: 1366
};
browser.windows.update(nextWindow.id, updateInfo);
});
});
});
显然,我上面的解决方案是为两个显示器硬编码的,并将“left”参数设置为1366像素,因此如果屏幕分辨率不等于1366x768或者有多于两个显示器连接,则该解决方案将无法正常工作。
因此,是否有任何API或更好的方法来检测连接了多少个显示器并检查它们的分辨率?Web扩展API是否具有检测多个显示器和分辨率值的功能?如果没有,有哪些可能的解决方法?
screen.width
。如果它在没有屏幕上,则可能会说0..如果是这样,那么您可能可以通过智能算法解决问题。请记住,显示器并不总是相邻的,它们可以几乎任意地放置。 - Forivin