- 2008-02-04 (月) 12:47
- Flash | GJ!(Web拍手)

FLASHでブログパーツを作っていて、おかしな現象にぶち当たってしまった。
他のブラウザでは問題ないのに、IEでだけうまく動かないのだ。
FLASHって、Javascriptなんかでアプリを作るのに比べたら、FLASH自身がブラウザごとの違いを吸収してくれるから問題は起こりにくいという認識でいたのだけれど、必ずしもそうでもないのか。FLASHに対する根拠の無い信頼、揺らぐ。
拍手アプリ用のFLASHで、ユーザーが設置した拍手をリスト化したXMLを取得してランキング表示をしようとしているんだけど、FLASHのブログパー
ツでそれを提供しようとした場合、当サイトのドメイン(hmlab.info)と、拍手アプリを設置しているブログ主のドメイン(hoge.comなど)
が異なるため、普通にはXMLを読みにはいけない。これがクロスドメイン。
それを超えるための手段としては以下の二つの手段がある
1 特定ドメイン(この場合hmlab.infoドメインからのアクセス)の通信を許可する記述を行ったcrossdomain.xmlを設置する
2 CGIでXMLを取得し、FLASHアプリ側へポストする。
一般的には1で問題ないのだけれど、設置するファイルが一つ増えてしまうのもなんだか美しくないし、もし万が一僕のサイトが引越しなんてことになった場合(予定は無いけど)、既に設置しているユーザーに記述変更を強いることになる。
なので今回は2を選択。ユーザーからのリクエストを受け、こちらのCGI(PHP)がユーザーのXMLを取得、FLASHに投げるという方法で実装しているんだけど、これがIEだけうまくXMLを取得できない。OperaもSafariもFFも問題ないって言うのに。
で、調査をしていくと、FLASHを設置するobjectタグの記述に問題があった。
<embed src=”http://hogehoge.swf?scrpath=****.php”>
とか書くところを
<embed src=”http://hogehoge.swf?scrpath=****.php” l >
「l」という、いらない一文字が加わっていたのだ。これが原因か。この「l」を削除したところIEでも問題なくリスト表示がされた。
いつもは表記ミスや文法エラーに寛容な印象のあるIE(それが元でトラぶることも多々)だが、この場合IEが厳格に表記ミスを見逃さなかったらしい。
つまり、FLASHに問題があったのではなくて、FLASH側に引数を渡すところでブラウザによる差異があったということ。ごめんよFLASH。君は悪くなかった。
いやもう完璧なケアレスミスというかタイプミス。
こんなことで1~2時間もウンウン考え込んでいた自分が情けない。
でも、普段「デキナイ子」の代表みたいに言われているIEに、こうした形でミスを指摘されると言うのはなんだかカチンとくるな。面白くない(笑)
多分IEを擬人化したらのびた君みたいな存在になるな。
「IEの癖に生意気だぞ!」
みたいな。
関連する投稿
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://hmlab.info/minor/2008/02/ie.html/trackback
- Listed below are links to weblogs that reference
- IEってのびた君だよな from Minor Problem
