Firefox具有高DPI的奇怪JavaScript行为

Firefox具有高DPI的奇怪JavaScript行为,javascript,html,firefox,resolution,dpi,Javascript,Html,Firefox,Resolution,Dpi,当使用全分辨率1920x1080和layout.css.devPixelsPerPx设置为-1(自动)时,我的Firefox浏览器(51.0.1 x32)出现了一个相当恼人的问题。 尝试在JS控制台中运行以下代码: var mywin = window.open("about:blank", "mywin", "width=300,left="+(screen.availWidth - 300)+",top=0"); 很好,对吧? 现在回到JS控制台并运行以下代

当使用全分辨率1920x1080和layout.css.devPixelsPerPx设置为-1(自动)时,我的Firefox浏览器(51.0.1 x32)出现了一个相当恼人的问题。 尝试在JS控制台中运行以下代码:

var mywin = window.open("about:blank",
        "mywin",
        "width=300,left="+(screen.availWidth - 300)+",top=0");
很好,对吧? 现在回到JS控制台并运行以下代码:

mywin.moveTo(mywin.screenX,0);
窗口本不应该移动,但Firefox会向左移动大约400像素。我猜是因为moveTo不考虑像素比率。 window.screen.availWidth为1536,乘以window.devicePixelRatio 1.25为1920。如果我尝试在X方向将窗口移动到1536以外的任何位置,它将不会做任何事情,因为它“太远”

在Internet Explorer中运行相同的代码可以得到预期的结果。在Firefox上,只有将layout.css.devPixelsPerPx设置为1.0,它才能正常工作,但是Firefox的UI非常小


其他人能证实这一行为吗?或者我的Firefox/Windows是否有问题?现在我已经卸载并重新安装了大约5次Firefox。

这是一个一直存在到Firefox版本52的bug。在我在bugzilla上报告后,它在Firefox53中得到了修复,现在已经不存在了。

对我来说不会移动。你想做什么?我想把窗户移到特定的位置。对我来说,Firefox忽略了moveTo、resizeTo等的像素比例。如果我调用mywin.moveTo(mywin.screenX,0),大约10倍的时间我的窗口都在左边。我想知道为什么。@charlietfl的window.devicePixelRatio对您来说大于1.0?不,不是…@charlietfl您可以进入about:config,然后将layout.css.devPixelsPerPx的值从-1.0更改为1.25,例如`?然后重试这些步骤,看看你是否仍然没有看到窗户移动。