|
kawa.net 本サイトのトップページに、はてなの人気エントリーと、flickr の写真、 新着コメント、新着トラックバックを RSS で取得して表示させるようにしました。 ajax では外部サイトの RSS はりようできないので、はてなと flickr の RSS は 予めミラーリングさせたものを利用しています。 しかし、手元の Opera 8.5ではエラーに遭遇。ちゃんと内容が表示されなかった。 RDF(RSS 1.0)形式なら問題ないのに、RSS 2.0 のファイルではエラーが出る。 http://www.kawa.net/xp/index-j.html (今は直ってます) 原因を探っていくと、Opera(少なくとも Opera 8.5)の XML パーサでは、 名前空間接頭辞(ネームスペースプリフィックス)がついている要素に 含まれる属性(attributes)の属性名は、その要素の名前空間接頭辞が 自動的に付与されていることが判明。 <media:text type="html">Hello, World!</media:text> という要素があれば、Opera では自動的に <media:text media:type="html">Hello, World!</media:text> 読み替えられてしまう。名前空間接頭辞が media なので、 その配下の属性名が type ⇒ media:type となるのです。 IE/Opera では、もとの属性名 type のまま読み出せます。 DOM の仕様としてどちらが正しいのかは、詳しくないので分かりませんが、 こんなところでブラウザごとの挙動が違うと、面倒ですねー。 今の所は、属性名に名前空間接頭辞が付いても付かなくても、 どちらでも処理できるように、JavaScript 側で対応していますが、 Opera のバグ(または仕様変更)ということで直してくれると良いのだけど。。。 ※名前空間接頭辞 (Namespace prefix) について詳しくは↓。 http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou07/learning-xml07.html http://www.atmarkit.co.jp/fxml/rensai/rexml06/rexml06.html |
| << 前記事(2006/03/07) | トップへ | 後記事(2006/03/13)>> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2006/03/07) | トップへ | 後記事(2006/03/13)>> |