ちょっと古めのPCにWindows7をクリーンインストールした直後、Internet Explore8でこのサイトにアクセスすると、次のようなエラーメッセージが発生。ナビメニュー以下のコンテンツが表示されない。
仕事で管理しているサイトのうち、WordPressで構築したもので、このエラーが起きるものはない。
また、このサイトだけが子テーマ機能を使っているものという理由から、最初はこのことが原因ではないかと疑っていたが、FirefoxやGoogle Chromeではこのエラーが起こらないし、さらに、子テーマ機能を使用していないサイトのなかに、サイトは表示されてはいるものの、IE8のウィンドウの左下にエラーメッセージが表示されるものを発見。
その後、Windows Updateで更新したら、何とかサイトが表示されるようになったので、忙さにかまけて、しばらくそのまま放置していたが、今日になって、偶然このサイトに出会って、その原因が判明した。
ちなみに、エラーの詳細は次のとおり。要するに、divの中でJavascriptを書くと起こるInternet Explore特有のエラーらしい。
メッセージ: オブジェクトでサポートされていないプロパティまたはメソッドです。
ライン: 4821
文字: 5
コード: 0
URI: http://www.ubiqlog.com/wp-includes/js/prototype.js?ver=1.6.1メッセージ: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
ライン: 0
文字: 0
コード: 0
URI: http://www.ubiqlog.com/メッセージ: オブジェクトでサポートされていないプロパティまたはメソッドです。
ライン: 4621
文字: 7
コード: 0
URI: http://www.ubiqlog.com/wp-includes/js/prototype.js?ver=1.6.1
Microsoftに報告したこと
というわけで、さっそく、divの中にJavascriptが書かれている箇所を探してみると、上記のサイトで指摘されていたGoogle Adsenseを始め、プラグインのLightbox2やAddtoAnyでもdivの中にJavascriptを吐き出していることが分かった。これらを削除すると、なるほどエラー表示は消える。
その後、この三つのJavascriptを順番に有効にしてみると、Lightbox2かAddtoAnyのどちらかを有効にするとエラーが生じることがわかった。
このことは、いずれLightbox2やAddtoAnyの作者にも報告すべきだろうが、今どきdivの中にJavascriptを書けないことの方が、ナンセンスではないのだろうか。
本来、この記事は、WordPress.orgのフォーラムにバグ報告するための下書きとして書き始めたのだが、どうやら最終的には、Microsoftにバグ報告することになりそうだ。
もうすぐIE9が正式リリースされるらしいので、このバグがMicrosoft側で修正されているかどうかを見守りたい。