今日の開発中、運用チームからページが空白でシステムに入れないと報告がありました。調査したところ、私のprint-template-designerがエラーを報告しており、globalThis is not defined というエラーが出ていました。
実際、以前にもこのようなエラーに遭遇したことがあるように思いますが、一般的にはブラウザのバージョンが低すぎることが原因でした。
Can I Use で調べると、globalThis は chrome70 バージョンより前ではサポートされていないことがわかりました。
そのため、解決方法は 2 つあります:
- クライアントにブラウザのバージョンアップを促す
- フロントエンドをアップグレードして、低いバージョンとの互換性を確保する
最終的には、クライアントにブラウザのバージョンアップをお願いしました。Win7 システムでは最新の 108 バージョンを使用すれば問題ありません。(ちなみに今年、Chrome は Win7 のサポートを終了しましたが、108 が最後のバージョンになるはずです)
また、コードの面でどう解決すればよいか?head に以下のコードを追加するだけです。
<head>
<script>
this.globalThis || (this.globalThis = this)
</script>
</head>
さらに、globalThis について理解するためのリンク: