今日、開発中に、生産運用スタッフからページが真っ白でシステムに入れないと報告がありました。調査したところ、私のprint-template-designerがエラーを報告しており、globalThis is not defined というエラーが出ていました。
実は以前にも同様のエラーに遭遇したことがあるような気がしますが、一般的にはブラウザのバージョンが低すぎることが原因です。
Can I Use で調べてみると、globalThis は chrome70 バージョン以前ではサポートされていないことがわかりました。
それでは解決策は 2 つあります:
- クライアントにブラウザのバージョンアップを依頼する
- フロントエンドをアップグレードして、低いバージョンに対応する
最終的にはクライアントにブラウザのバージョンアップをお願いすることにしました。Windows 7 の場合は最新のバージョン 108 を使用すれば問題ありません。(ちなみに今年、Chrome は Windows 7 のサポートを終了しましたが、108 が最後のバージョンになるはずです)
また、コードの面での解決策はどうすればよいでしょうか?head に以下のコードを追加するだけです。
<head>
<script>
this.globalThis || (this.globalThis = this)
</script>
</head>
さらに、globalThis とは何かについて理解する必要があります: