「HTMLコンポーネントでも、HTMLLoaderクラスでも表示は一緒」に書いたように、AIR アプリのHTMLコンポーネントでインターネット上のWebページを表示した時に、外部CSSファイルや画像ファイルを一切読み込まない(つまり、URLで指定したHTMLだけ読み込んでお終い)という状況が発生していた。
「なんやねん!こんなしょぼい仕様なんかい!?」と怒っていたのだが、原因は俺だった。ごめん・・・Adobe社。
結局、原因は「URLの最後に改行コードがついていた」からであった。
テキストファイルから URL を読み込んで、それをHTMLコンポーネントのlocationプロパティにセットするのだが、末尾の改行コードをとりわすれてた。
なので、
url = (url.split("\r")).join("");
url = (url.split("\n")).join("");web.location = url;
という具合に、locationプロパティにセットする前に CR/LF コードを削除するようにしてやればバッチリであった。
URL の後ろに改行コードが入ってると、怪しいURLと判断して、そこからのリンクを全部無視してしまうとか、そういう仕様なのかね?
URL の後ろに改行コードが入ってると、「外部の画像ファイルやCSSファイル等を一切読み込まない。その代わり、ローカルディスク上にある画像であれば表示できる」という動きをする。ローカルディスク上の画像ファイルは読み込めるということは、やっぱセキュリティ上の制限をかけてるのかなあ・・・
ま、単純に Flex にバグがあって、予想外の動きをしているという可能性も捨てきれんがなあ(笑)
電気ウナギ的○○
About Backコメント(0)
電気ウナギ的○○