Firefox具有高DPI的奇怪JavaScript行为

时间:2017-02-11 11:53:51

标签: 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控制台并运行以下代码:

mywin.moveTo(mywin.screenX,0);

窗口不应该移动,但是使用Firefox它会向左移动大约400像素。我猜是因为moveTo不尊重像素比率。 window.screen.availWidth给了我1536,乘以window.devicePixelRatio 1.25得到1920.如果我试图将X方向的窗口移动到超过1536的任何东西它将不会做任何事情,因为它“太远了”。

在flippin Internet Explorer中运行相同的代码会产生预期的结果。在Firefox上,如果我将layout.css.devPixelsPerPx设置为1.0但Firefox UI非常小,它才能正常工作。

其他人可以确认此行为还是我的Firefox / Windows搞砸了?我现在已经卸载并重新安装了Firefox大约5次。

1 个答案:

答案 0 :(得分:0)

这是一个在Firefox版本52之前存在的错误。我在Bugzilla上报告它之后在Firefox 53中修复了它,现在不再存在。