« Mac版IE CSSハック PartII(半角円マークや特定漢字をコメントに使う) | トップページ | Mac版IEとGoogle Adsenseのテキスト広告(「'CCAX_BT'は定義されていません」エラーの理由) »

2006/09/22

Mac版IEでのJavaScriptデバッグ方法(眞鍋かをりさんのブログがMac版IEで正しく表示されない理由)



インフォシーク・アクセス解析

Mac版Internet Explorerのことを書き出すと止まらなくなります。できの悪い子ほどかわいいという言葉がありますが、まさにそんな感じです。I love Mac IE. サランヘ。

Mac版IEでJavaScriptのデバッグをしようとすると、本当に大変です。FirefoxやSafariなど他のブラウザでは何も起こらないのに、Mac版IEでだけエラーになる。「また、お前か」、と何度叫んだか分かりません。

Mac版IEでデバッグをするには、メニューの「Explorer」→「環境設定」を選択しますと、



のような「Internet Explorer の環境設定」が開きます。

ここで、左のメニューから「Web ブラウザ」→「Web コンテンツ」を選び、アクティブコンテンツの中の「スクリプト エラーの警告を表示」の横のチェックを付けます。すると、問題が起こるサイトにアクセスすると、IE 5.2.3(Tiger/Panther)では、



のように、見ごとにエラーメッセージが文字化けしてくれます。万歳!! マンセイ!!

読めるのは、「CAX_BT」という変数と、その変数が登場するであろう行数が2006行目だということだ。「回線」とあるのは、英語の「Line」をローカライズする際に誤訳したのでしょう。ローカライズしたのは、このデバッグ機能の意味を知らない人だったのでしょう。いかに日本語版MacIEが、親であるマイクロソフト社から見捨てられた存在だったかがここでも分かります。かわいそうになってきて、余計に愛情が湧きます。



さて、上のキャプチャーは明らかに「眞鍋かをりのココだけの話 powered by ココログ」ですが、なぜ、Mac版IEではエラーが出るのかといいますと、結論から言えば、このサイトでは、Googel Adsenseのテキスト広告が使われていることが関係しています。「CAX_BT」という変数は、ココログのアクセス解析に用いられているJavaScript変数であり、またこの「2006行目」に存在したのも、ココログのアクセス解析用のJavaScriptですが、調べてみると、犯人ではありませんでした。

ちなみに、Google AdSenseのテキスト広告とは下記のような広告のことです。



Mac版IEで眞鍋さんのブログを見ると、途中で読み込みが終了してしまったようになってしまっていて、その終りの部分がGoogle Adsenseのテキスト広告になっていることも、この推論の傍証になっているのではと思います。

Google Adsenseのテキスト広告のバグというべきか、Mac版IEのバグというべきかは、まだ迷っていますが、Google Adsenseのテキスト広告が関係していることは間違いありません。Mac版IEでのみ、JavaScriptの外部ファイルの中で使用されている半角円マークが全角円マークに文字化けしているために、エラーが発生しています。回避策も見つかっていますが、これは後日ご紹介することにします。

 余談になりますが、Mac版IEでこのようなJavaScriptエラーが発生するとき、アクセスログへの記録がなされません。ということは、Mac版IEのシェアは、Google Adsenseのテキスト広告を掲載している場合は、実態以上に低く計算されていることになります。

話を、このMac版IE5.2.3のエラーメッセージの文字化けの話に戻します。この文字化けは、実はOS9.xで使用されているIE5.1.7や5.0では発生しません。



文字化けしていた文字は、「Microsoft JScript ランタイムエラー」「'CCAX_BT'は定義されていません」だったわけです。何をどのように解釈して、このような文字化けが発生するのか、そのメカニズムを調べようとしましたが、結局そのアルゴリズムは分かりませんでした。謎です。

なお、Mac版IEでは、Safariと違って、window.onerrorも有効です(参照:「WEBプログラミング NOW!: SafariでJavaScriptのデバッグをする方法」)。IEのメニューから「スクリプト エラーの警告を表示」させるようにすると、自分がデバッグしたいサイトだけでなく、他のサイトでも同様にエラーがいちいち出ますので正直鬱陶しいです。ですから、自分がデバッグしたいサイトのソースにだけ、window.onerrorでエラーを捕捉するようにすれば便利です。ただし、このやり方でも、Mac版IE5.2.3における文字化けは解消しません。文字化けしない英数字の変数名や、エラー発生の行数などを参考にしながらデバッグしていくしかありません。とほほですが、仕方がありません。

Click Here!

今なら「乗換3ヶ月無料キャンペーン」実施中! レンタルサーバーのスピーバー

|

« Mac版IE CSSハック PartII(半角円マークや特定漢字をコメントに使う) | トップページ | Mac版IEとGoogle Adsenseのテキスト広告(「'CCAX_BT'は定義されていません」エラーの理由) »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67411/11995060

この記事へのトラックバック一覧です: Mac版IEでのJavaScriptデバッグ方法(眞鍋かをりさんのブログがMac版IEで正しく表示されない理由):

« Mac版IE CSSハック PartII(半角円マークや特定漢字をコメントに使う) | トップページ | Mac版IEとGoogle Adsenseのテキスト広告(「'CCAX_BT'は定義されていません」エラーの理由) »