昨晩梅酒の記事を公開してからのこと。しばらくすると現在出張で諸国漫遊中の滋賀の巨匠よりSkypeでこんな連絡が来ました。
「御大のページ、エラーが出て見れないけど何か設定変えた?」
むむむ?なんですと?小生はちゃんと見れておるのに一体どういう事だろう。どうやらエラーの内容としては、このページを開こうとすると途中でポップアップウインドウが開き、
「インターネット サイト http://addressclub.net/ を開けません。操作は中断されました」
というメッセージが出るそうな。そしてそのウインドウにある「OK」ボタンを押すと、白いエラー画面が表示されてしまう、との事。どうやらInternetExplorer固有の問題らしいけど、小生がIE7で見ても特に問題は無さそうだし、こりゃバグだらけで評判のIE6の癇癪に触れる何らかのコードを小生が書いてしまっている可能性もある、ナァ...この時点で時刻は深夜0時過ぎ。小生いつものように酔っ払っておやすみの時間であります。
翌日、改めて調べてみることに。おっと、IE7でも件のエラーがちょいちょい出て来ますな。普段IEをまったく使わないから気が付かなかったけど、こりゃイカン。昨日の更新からエラーが出てるとなると怪しいのは貼り付けたYoutube動画か。試しに外してみたところ、エラーは出なくなっているっぽい。ふむ。
調べてみたところ、Youtubeがブログ貼り付け用に提供しているコードの仕様がちょっぴり良く無いらしい。Movabletypeだと標準でXHTMLが使用されるんだけれども、XHTMLでは<embed>タグが定義されておらず、厳密に言えばYoutubeコードをそのまま貼り付けるのはNGヨ、って事らしい。ってことで昨日貼り付けたコードをXHTML向けに書き換えてみる。
▼ に変更
参考:cyano: FlashをXHTMLで表示させるには(embedタグを使わずに表示させるには)
過去に貼り付けた動画やFLASHムービー(ブリブリボタンとかよ)のコードもXHTMLにお行儀良くしてみます。...が、相変わらずエラーが出たり出なかったり。この再現性の悪さはページの読み込みタイミングに左右されているっぽく、すなわち怪しいのはJavascriptか。
更に調べてみると、どうやらGoogle APIの読み込みタイミングが早すぎる(?)とIE様は機嫌を損ねてエラーを吐き出してしまうのだそうな。今回Google Mapsなどの機能は使っていないけれど、Youtube動画を埋め込むとGoogle APIを探しに行って、そのタイミングでエラーとなる...ってことかい?
そんなわけでGoogle API関連のscriptタグ集団と、ついでにLightbox2関連のタグ集団を、headerタグ内からbody終了タグ直前にお引越しして形式上最後に読み込んでいただくように変更してみました。一通りエラーが出なくなったと思うんですが、どうでしょう?IE6で確認できる環境が無くてイマイチ不安ですが。
というわけでここをご覧になってやたらエラーを浴びた皆様には深くお詫び申し上げます。チン射。
【追記】
GoogleMapsなどのGoogleAPIと、Lightbox2がコンフリクトするエラーについては、「割と真面目にGoogleMapsとLightbox2の共存について考えてみた。」にて、より解決へ近付いておりますのでご参照ください。どうやらYoutubeコードをそのまま貼り付けてもイケるようですよ。
