サイトにGoogleカレンダーを埋め込んでるんですが、IEでページのリロードをするとGoogleカレンダーが表示されないという現象が発生しました。
Firefox,Chrome,Opera等では発生していません。
いろいろ調査したんですが、多分Google側が修正を加えたことで起こっているんじゃないかと思います。
埋め込みページを初回表示するときは正常に表示されます。(それで稀にエラーになることがありますが。。。)
ページを更新すると確実に表示されません。その際、以下の様なJavaScriptのエラーが発生します。
Web ページ エラーの詳細
ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; MDDS; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
タイムスタンプ: Wed, 4 Jul 2012 06:19:20 UTC
メッセージ: 'gapi.config' は Null またはオブジェクトではありません。
ライン: 126
文字: 216
コード: 0
URI: https://www.google.com/calendar/xxxxxxxxxxxxxxxxxxxxxxembedcompiled__ja.js
メッセージ: オブジェクトでサポートされていないプロパティまたはメソッドです。
ライン: 10
文字: 21
コード: 0
URI: https://www.google.com/calendar/embed?src=xxxx@group.calendar.google.com&ctz=Asia/Tokyo&gsessionid=OK
クッキーの受け入れやキャッシュの無効化等色々試したんですが、ダメでした。
こちら側ではどうしようもないので、とりあえず暫定的な方法を取ることに。。。
初回表示は正常に行くことから、[表示されない場合はここをクリック]みたいなボタンを作成し、埋め込みページにリダイレクトするコードを埋め込んだページにリダイレクトするようにしました。
こんな感じです。
●カレンダー埋め込みページ(main.html)
http-equiv="Content-Type" content="text/html; charset=UTF-8">
.....
type="button" value="表示されない場合はここをクリック" onclick="location.href='back.html';" />
.....
●back.html
GoogleにはさっさとIEでも表示できるように修正して欲しいもんです。。。
追記:
2012年10月現在は直っているようです。(この現象が起きたのは2012/6下旬です。)