コアラと言っても・・・こいつ等じゃないw
話は専門学校の同級生からの SMSから始まる
元々は燃料系の会社のITを面倒みてたらしいのだけど、昨年くらいから事業として1つの部署として立ち上げて、初代部長となったらしい。
で、よくあるパターンで自社サイトのリニューアルしたいけど、受注した案件で手が回らず・・・って状態で出来たTOPページのアイキャッチがJavaScriptでアニメーションするんだが、Loaderが変なタイミングで消えて真っ白いアイキャッチが数秒近く表示されるらしい。
もちろんキャッシュしてる2回目は速攻で表示されるのだが・・・
ソース見ないとなんともなぁ~と言ってたらソースが送られてきた(^^;)
アイキャッチの部分はiframeで埋め込まれてて、JavaScriptでonloadを取ってページ読み込み後にLoaderとトップページを入れ替えるってのはちゃんと書いてあるが、iframe内のHTMLと読み込み元のHTMLでは読み込み完了のタイミングは違うはず
なんだ、これじゃん!って思ってiframeに指定してあるIDでonloadを書いてみた。
うーん、Loaderがコアラなのねw
おっ!ちゃんと動いた!!と思って早速メールを送ったら友達の部下からダメ出しが・・・
どうも、アイキャッチのアニメはAdobeのソフトで作ってるらしくて、iframeのonloadではちゃんと読み込み完了を取れないそうな
で・・・それが金曜日の話で、土曜日・日曜日は叔父さんが亡くなってお通夜やお葬式があったのでバタバタしつつも何か手は無いかと考えてた
ふと思いついたのが、親側でiframe内のHTMLが表示完了したかをチェック出来ないのならば、読み込んでるHTML側の一番最後でLoaderを消すコードを書けば良いのだと気づいた
少し調べてみるとこんなサイトをみつけた
iframeの親から子、子から親の操作をする事が出来るってブログ
という訳で、これを参考にiframeで読み込まれるHTMLの最後に
window.parent.stoploader();
なんて感じで書いてやる。stoploader()は親側のHTMLに書いてあるJavaScriptでLoaderを非表示にしてコンテンツを表示するように書いてある。
依頼者に確認してちょってメールしたんだけど、恐らくこれで問題無いはず。だから・・・ミッションコンプリートなはず(笑)