Firefox 奇怪的 JavaScript 高 DPI 行为
Firefox strange JavaScript behaviour with high DPI
我的 Firefox 浏览器 (51.0.1 x32) 在使用全分辨率 1920x1080 并且 layout.css.devPixelsPerPx 设置为 -1(自动)时遇到了一个相当烦人的问题。
尝试 运行在 JS 控制台中使用此代码:
var mywin = window.open("about:blank",
"mywin",
"width=300,left="+(screen.availWidth - 300)+",top=0");
工作正常,对吧?
现在返回 JS 控制台并 运行 此代码:
mywin.moveTo(mywin.screenX,0);
window 不应该移动,但在 Firefox 中它向左移动了大约 400 像素。我猜是因为 moveTo 不遵守像素比。
window.screen.availWidth 得到 1536,乘以 1.25 的 window.devicePixelRatio 得到 1920。如果我尝试将 X 方向的 window 移动到 1536 以外的任何地方,它不会做任何事情,因为它是 "too far".
运行 flippin Internet Explorer 中的相同代码给出了预期的结果。在 Firefox 上,只有当我将 layout.css.devPixelsPerPx 设置为 1.0 时它才能正常工作,但是 Firefox UI 非常小。
其他人能否确认此行为,或者我的 Firefox / Windows 搞砸了吗?我已经卸载并重新安装 Firefox 大约 5 次了。
这是 Firefox 版本 52 之前存在的错误。在我在 bugzilla 上报告后,它在 Firefox 53 中得到修复,现在已不存在。
我的 Firefox 浏览器 (51.0.1 x32) 在使用全分辨率 1920x1080 并且 layout.css.devPixelsPerPx 设置为 -1(自动)时遇到了一个相当烦人的问题。 尝试 运行在 JS 控制台中使用此代码:
var mywin = window.open("about:blank",
"mywin",
"width=300,left="+(screen.availWidth - 300)+",top=0");
工作正常,对吧? 现在返回 JS 控制台并 运行 此代码:
mywin.moveTo(mywin.screenX,0);
window 不应该移动,但在 Firefox 中它向左移动了大约 400 像素。我猜是因为 moveTo 不遵守像素比。 window.screen.availWidth 得到 1536,乘以 1.25 的 window.devicePixelRatio 得到 1920。如果我尝试将 X 方向的 window 移动到 1536 以外的任何地方,它不会做任何事情,因为它是 "too far".
运行 flippin Internet Explorer 中的相同代码给出了预期的结果。在 Firefox 上,只有当我将 layout.css.devPixelsPerPx 设置为 1.0 时它才能正常工作,但是 Firefox UI 非常小。
其他人能否确认此行为,或者我的 Firefox / Windows 搞砸了吗?我已经卸载并重新安装 Firefox 大约 5 次了。
这是 Firefox 版本 52 之前存在的错误。在我在 bugzilla 上报告后,它在 Firefox 53 中得到修复,现在已不存在。