vue中 window.getScreenDetails 没有该属性?

vue3 中使用 vue-cli-servicer编译后window.getScreenDetails 没有该属性,
vue3 + vite 也是同样的 经过测试后
使用localhost的方式来访问 是支持该API的,但是一旦具体到我的IP 就不支持
http://localhost:8080/ 支持
http://172.30.30.82:8080/ 不支持
vue3+vue-cli下编译失败
image.png
vite+vue3下正常
image.png

image.pngimage.pngimage.pngimage.png

新开的vue3+cli的

阅读 3.5k
3 个回答
✓ 已被采纳新手上路,请多包涵

该问题引发是因为google 认为当前网址不安全,于是就并没有挂载这个window属性,所有localhost或者127.0.0.1 是可以拿到 一旦具体到ip就不可以,解决方案,使用https来访问就可以了,本地可以搭建个证书,用nginx 加载SSL 这边推荐使用:mkcert 教程地址:https://www.jarods.org/1213.html

window.getScreenDetails() 是个window对象上的方法,只要浏览器支持,肯定不会没有,和vue,vite没有关系

是不是你加载了什么pollyfill 把它置为null 了
1678357757436.png

在你的代码目录下全局搜索一下

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。

启动了一个空白的 Vue3+VueCLI 项目,并没有你说的问题。看看你是不是安装了什么依赖项导致的?

image.png


大概定位到问题了

所以默认 http://127.0.0.1http://localhosthttp://*.localhost 网址,是被认为是安全网址。
其他的需要项目是 https 才行,或者通过设置 enable-experimental-web-platform-features 为打开。


本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题