はてなブログでSyntaxHighliterを使ってたらめっちゃエラーが出るようになってた
久しぶりに自分のブログを見たら画面上部にはてなのヘッダが出てなくてポカーン。 あれ、どこから記事の管理するんだっけ・・・と思ったらChromeが強制終了。
コンソールを見たらやべぇ・・・暴れてる。
Uncaught RangeError: Maximum call stack size exceeded Uncaught TypeError: Cannot set property 'project' of undefined Uncaught TypeError: Cannot read property 'GlobalHeader' of undefined
ブラウザ落とすとか凶悪すぎますね。(ご迷惑をおかけした方申し訳ありません)
texts-ja.jsとか知らんし、GlobalHeaderとかはてなのだよね??バグか?とかすぐに疑っちゃったわけですが、自分が名前空間を汚染しちゃった可能性の方が高いなぁと思いすぐに調べました。
で、結局原因はなんだったかというと外部でホストされてるSyntaxHighliterのjsが原因でした。
実は今まで↓こんな感じでSyntaxHighliterを使ってたのですが
こいつを読み込まなくするだけで普通に動くようになりました。 詳細は追ってませんが、グローバル変数を上書きしちゃってそうです。
というかもうMarkdownかGistでいい。SyntaxHighliterはぶっちゃけ面倒臭い。
ということで対応方法が決定。
- SyntaxHighliterを使わなくする
- 今までの記事を修正する
・・・若干面倒だけど仕方ないですね。そんなに記事が多くなくて助かりました。