我一直在使用 phantomJS 一段时间,在使用 matchMedia 查询来区分设备类型的网站中使用它时遇到了问题。
有一段时间我认为这是一个幻象问题,但它发生在其他无头浏览器上,如 slimerJS 和 Headless Chrome。
问题是 matchMedia 查询不支持 HB 上的视口。
作为示例,以下步骤重现了这些 HB 中的问题:
- 设置移动视口(例如:736x414)。
- 打开https://josebrandao13.github.io/
- 截图。
结果总是:“我是平板电脑”。这意味着宽度和高度不是大于 768px。
如果您在 Chrome 或 Firefox 开发工具上打开此网站并在手机和平板电脑设备之间切换,matchMedia 会按预期运行。此外,如果我在手机 chrome 上打开它,一切正常。
无头浏览器和 matchMedia 是否存在任何已知问题?