MacブラウザとJavaScript

Windowsだけでウェブ・アプリケーションを作っていると、Macでは正しく動作しないということがよくあります。MacブラウザのJavaScript関連バグやその対象方法、デバッグ方法についてまとめてみました。


Safari編(9件) | Mac版IE編(20件) | Mac版Firefox編(2件) | Mac版Opera編(3件) | iCab編(1件) |

|Mac版ブラウザ全般(7件) | Macブラウザ・バグ一覧トップページへ |


文字化け(17件) | JavaScript関連(16件) | CSS関連(17件) 

 SafariとJavaScript(6件)

● SafariとAjax文字化け
http://shimax.cocolog-nifty.com/search/2006/11/safariajax_4802.html
Safariでは、Ajaxで読み込んだUTF-8のファイル内の「あいうえお」が「あいうえお」のように文字化けします。これはISO-8859-1として解釈されているためです。読み込んだテキストファイルの文字コードがUTF-8であることを.htaccessによって教えてあげることによって解決できます。また、少し手間がかかりますが、ファイル内の文字列をURLエンコードしておき英数だじけにしておいて、後でデコードするという方法もあります。

● SafariとGoogle AdSense(糸編の漢字が大量出現し、文字化けする場合)
http://shimax.cocolog-nifty.com/search/2006/09/safarigoogle_ad_90d5.html
Safariではdocument.charsetもdocument.characterSetもサポートされていないため、文字化けします(Safari 3.0になってサポートされるようになりました)。

● Safariと画像オブジェクトのonloadイベント
http://shimax.cocolog-nifty.com/search/2006/09/safarionload_6d32.html
Safariには、画像が存在せず読み込みに失敗してもonloadイベントが発生してしまうため、注意が必要です。ちなみに、この不具合はSafari 3.0で修正されました。

● Safariとカーソルキー(onkeypressイベント取得時)
http://shimax.cocolog-nifty.com/search/2006/09/safarionkeypres_a96e.html
Safariでは、カーソルキー(→↑→↓)のonkeypressイベントが2回発生してしまう奇妙な不具合があります。また、そのキーコードも他のブラウザのものと異なります。ちなみに、イベントが発生する不具合はSafari 3.0及び2.0.4最新ビルドで修正されています。

● SafariのユーザーエージェントからMacOSのバージョンを調べる方法
http://shimax.cocolog-nifty.com/search/2006/09/safarimacos_541d.html
JavaScriptでnavigator.userAgentを調べることにより、Safariの場合、TigerなのかPantherなのかわかります。また、同じTigerでも10.4.7なのか10.4.6なのかも見分けることが可能です。

● SafariでJavaScriptのデバッグをする方法
http://shimax.cocolog-nifty.com/search/2006/09/safarijavascrip_c54d.html
Safariには隠しメニューとしてdebug機能があります。その他、Safariでのデバッグ方法の解説。

▲ ページトップへ


 Mac版IEとJavaScript(8件)

● Mac版IEでGoogle AdSenseの広告が表示されなくなった訳
http://shimax.cocolog-nifty.com/search/2007/06/maciegoogle_ads_93ad.html
ひょんなことから、Mac版IEでGoogle AdSenseの広告が表示されなくなっていることを知りました。以前(2006年9月当時)も、特定の広告でそのような現象があったのですが、今は別のエラーのようです。原因を調べてみました。

● Mac版IEでのJavaScriptデバッグ方法(眞鍋かをりさんのブログがMac版IEで正しく表示されない理由)
http://shimax.cocolog-nifty.com/search/2006/09/maciejavascript_86c4.html
「Google AdSenseのテキスト広告が原因である」というお話。また、Mac版IEでのJavaScriptのデバッグ方法について解説しています。

● Mac版IEとBOM(UTF-8の外部ファイルの場合)
http://shimax.cocolog-nifty.com/search/2006/09/maciebomutf8_af1a.html
BOMをHTMLページ・JSファイルに使っても、百害あって一利なしという結果に。BOM付きJSファイルはMac版IEをはじめとする、いくつかのブラウザで無効な文字として解釈され、JavaScriptエラーが発生します。

● Mac版IEとinnerHTML
http://shimax.cocolog-nifty.com/search/2006/11/macieinnerhtml_b0ba.html
Mac版IEでは、innerHTMLでJavaScriptが2回実行される不具合があります。

● Mac版IEとGoogle Adsenseのテキスト広告(「'CCAX_BT'は定義されていません」エラーの理由)
http://shimax.cocolog-nifty.com/search/2006/09/maciegoogle_ads_40bb.html
Google AdSense(テキスト広告=iframeタグをdocument.writeするタイプでないもの。)の後ろに、ダミーのJavaScriptを設置しない限り、Mac版IEでは、Google AdSenseのテキスト広告の後ろの本文が消えたり、JavaScriptが動かなくなることがあります。

● MacIE+Tiger: getTime()で時間を正しく取得できない現象(キャッシュの影響が原因?)
http://shimax.cocolog-nifty.com/search/2005/10/macie_gettime_6728.html
Pantherでは同現象は発生しないのに、Mac版IEでは、時間が経つにつれて、getTime()で取得される時間と実際の時間に乖離が生じていく現象。

● ココログ・アクセス解析ではFlash導入率が低く計算されているかも(Mac版IE/Sleipnir)
http://shimax.cocolog-nifty.com/search/2006/09/flashmaciesleip_1e89.html
window.ActiveXObjectはWindows版IEのみならず、Mac版IEでもサポートしています(trueを返します)が、「new ActiveXObject('ShockwaveFlash.ShockwaveFlash')」をしても、Mac版IEではundefinedとなります。オブジェクトは生成されません。Flashのインストール状況を調べるには、アルゴリズムに注意する必要があります。

●アンカーリンクとMac版IE(ページ内移動でも、onLoadイベントが発生してしまう件
http://shimax.cocolog-nifty.com/search/2006/10/macieonload_d82e.html
Mac版IEでは、アンカーリンクによるページ内移動でもonloadイベントがその都度発生してしまうため、location.hashをチェックしなければ、無限リロードに陥ることがあります。

▲ ページトップへ


 Mac版OperaとJavaScript(1件)

● Opera 9でも、「このコントロールを使用する場合はクリックしてください。」(Flashファイル上で)
http://shimax.cocolog-nifty.com/search/2006/06/__8890.html
マイクロソフト社がEolas社との特許紛争に敗れ、IE(XP SP2及びWindows Server 2003)の仕様を変更しました。FlashやWindows Media Playerのコントロール上にマウスを持ってくると、「このコントロールをアクティブ化して使用するにはクリックしてください」というポップアップのメッセージや、 「このWebページで ActiveXコントロールを実行するにはクリックしてください」というようなアラートが表示されるようになったのです。そのため、今までよりも余計にクリックしなければならない事象も発生しました。実は、これはOpera9.x以降でも発生します。しかも、Windows版Operaだけでなく、Mac版Operaでもです。

▲ ページトップへ


 iCabとJavaScript(1件)

● Tiger+iCab2.9.8で文字化け
http://shimax.cocolog-nifty.com/search/2005/06/tigericab298_0941.html
最新版では解消されていますが、iCabの特定バージョンでは、String.fromCharCodeメソッドの挙動が変でした。

▲ ページトップへ


 Mac版ブラウザ全般(1件)

● Macと動画サイト(Mac非対応の理由は、DRMだけか?)
http://shimax.cocolog-nifty.com/search/2006/09/macmacdrm_87ea.html
GyaoやYahoo!動画をMacで見ることができないのは、「Mac版Windows Media Playerが対応しているDRMのバージョンが低すぎること」だけが原因ではなく、数々のJavaScriptが最初からMac門前払いになっていることも原因では?というお話。

▲ ページトップへ