← |
2024年11月 |
→ |
日 |
月 |
火 |
水 |
木 |
金 |
土 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
|
26 |
27 |
28 |
29 |
30 |
|
XHTML1.1Validでiframeを使いたい
|
先日、2009年の九州・広島旅行記(書きかけ)をアップした。
しかし、かみちゅ!聖地巡礼尾道観光のページに、 GoogleMAPを埋め込んだのは良いが、 IEではうまく表示されていなかった。
原因は、XHTML1.1とIEの組み合わせの問題。
件のページはXHTML1.1にValidなページとして、 書いていたのだけど、 GoogleMAPを埋め込む際に問題があった。
それは、GoogleMAPの埋め込みコードで使用しているiFRAMEタグは、 XHTML1.1から廃止になっている点である。
廃止と行っても、代替として、 <object type="text/html" data="〜">Object非対応時のメッセージ</object> とすることで、iframeと同等の機能が実現できるため、 そちらに移行すれば問題がないはずである。
しかし、IEの場合には、どうやら、 「Objectタグで外部サイトのデータを読み出すことは出来ない」 という制約があるようである。
そのため、XHTML1.1Validな件のページでは GoogleMAPが表示できない状態になっていたのが原因。
んじゃあ、どうすればいいかというと、 いろいろと解決方法はある。 ・HTML1.0TraditionalやHTML4.01等にする。 ・JavaScriptでIEならばIFRAMEに書き換える。 ・IEの独自拡張を使う。 など。
というわけで、今回は、最後のIEの独自拡張を使用することにした。
IEには条件分岐コメントなる、気持ち悪い便利な構文がある。 こんな書式である、
<!--[if IE]>IEの場合に表示される内容<![endif]--> こうすることで、一般的なブラウザでは<!-- 〜 -->はコメントとして扱われ、 IEだと、この部分が表示されることになる。
逆に、IE以外への対応としては
<!--[if !IE]> -->IE以外はこれが表示される。<!-- <![endif]--> とすればよい。
これを駆使することで、このページ群は XHTML1.1Validで、GoogleMAPを埋め込むことが出来たのでした。 ※ので、記述例は、このページのソースをご覧ください。
IEのこの、外部サイトのデータを Objectから読み出せないという仕様は、 気持ちは痛いほど分かるけど不便。
こうなっている理由も察しは付くので、 IEが対応してくれそうもないので、気持ち悪いけど、 この対応でしばらく行くしかなさそう?
|
00:23, Monday, Jan 03, 2011 ¦ 固定リンク
¦ 携帯
■コメント
■コメントを書く
※コメントの受け付けは終了しました
|
|