解决浏览器端 globalThis is not defined 报错

解决浏览器端 globalThis is not defined 报错

2021年10月25日 17:15 ·  阅读 1817
解决浏览器端 globalThis is not defined 报错

场景:

最近在使用 nuxt.js 做服务端渲染的移动端应用时,我们在app里引用h5的页面。结果上线后在部分机型(例如:Mozilla/5.0 (Linux; Android 8.1.0; M1822 Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/65.0.3325.110 Mobile Safari/537.36)里页面基本结构能加载出来但是页面不会发起其他网络请求。用 vConsole 调试也看不到报错,最后安卓开发同事调试才发现报错。如下图:

c16dac7b65cde29783a83fa58e35dade.png

解决办法:

在html头部加上如下代码:

<head>
    <script>
        this.globalThis || (this.globalThis = this)
    </script>
    ...
</head>
复制代码

思路是:既然全局上没有定义 globalThis 那我们就判断一下,如果没有的情况下,定义全局的一个 globalThis 指向全局 this 对象(也就是 window 对象)。(注:支持 globalThis 的浏览器,其指向就是 window 对象,更多信息可在这里查看:developer.mozilla.org/en-US/docs/…

关键词:globalThis is not defined, nuxt.js, globalThis

分类:
前端
标签:
评论
 
 
热门评论
多厘的头像
开发 @ 小有记4月前
来来来, 收个膝盖..[害羞]
点赞
1
(作者)4月前
[偷笑]
点赞
回复
全部评论 6
最新
最热
 
欲可非的头像
前端开发3月前
感谢分享,解决了我的企微和微信浏览器问题
1
回复
 
鸭鸭不在乎T_T的头像
解决了我的问题[赞],新项目用Vue3和Element Plus,也是这个报错
1
回复
 
多厘的头像
开发 @ 小有记4月前
来来来, 收个膝盖..[害羞]
点赞
1
(作者)4月前
[偷笑]
点赞
回复
Tims18294的头像
前端开发5月前
在一个 chrome 70版本上复现了次问题,用上述方法解决了。感谢了[憨笑][憨笑][憨笑]
点赞
1
(作者)4月前
不客气[愉快]

posted on 2022-04-20 19:47  漫思  阅读(3047)  评论(0编辑  收藏  举报

导航