LoginSignup
0
0

More than 5 years have passed since last update.

Munchkin is not defined の原因

Posted at

エラー検知ツールの Sentry でエラーログを見てるとき、↓のエラーが20万件弱発生していた。

Munchkin is not defined

Munchkinというのは、マーケティングオートメーションツールのMarketoのトラッキングをしたいときに使うScriptで、
公式ドキュメントに書いてあったようにCDNから munchkin.js を読み込んで、ページの読み込み時に初期化して使っている。

<script type="text/javascript" src="//munchkin.marketo.net/munchkin.js"></script>
<script>Munchkin.init('munchkinAccountId');</script>

CDNで読み込んだ関数を呼び出してるだけなので特にエラーが頻発するようには見えず、、、
実際、チームメンバーの誰の環境でもエラーは再現できませんでした。

is not defined と言われてるので、関数が定義されてない状態で init() が実行されてるんだろうけど、
同期的に読み込まれてるので、CDNが読まれる前に関数を実行してるわけでもないし。。

Developer toolで回線速度を落としても特に関係なく。。

原因

悪戦苦闘した後にたどり着いた原因が、ブラウザのAdBlock系のプラグインでした😭
AdBlockerを入れてるとMunchkinのCDNにアクセスできず、 Munchkin が参照できずにエラーが起きていました。

解決策

window objectに Munchkin が存在するか判定してから、 init() を実行するようにしました。

  (function() {
    function initMunchkin() {
      if (!('Munchkin' in window)) {
        return;
      }
      Munchkin.init('munchkinAccountId');
    }

    initMunchkin();
  })();
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0