RIAトピックス
リッチクライアント/RIAを主テーマに取り扱います。Flex、Ajax、AIR、Silverlight、JavaFX、etc。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

IEのinnerHTML挙動について2
数日前に↓の記事でIEのinnerHTMLの挙動にはまったと書きましたが、またはまりました。

【Javascript】IEのinnerHTML挙動と`(バッククォート)について
http://mfria.blog106.fc2.com/blog-entry-1660.html

今回は半角スペースです。
IEは文頭に半角スペースがある場合は除かれ、文中に半角スペースが複数ある場合には1つにまとめます。

例:
←ここには2つ半角スペースがあります。
→ ←ここには2つ半角スペースがあります。

これはよく知られた事ですが、Javascriptを使用しinnerHTMLやnodeValueで取得した場合も同様の値を取得してしまいます。
innerHTMLというのはその名の通りオブジェクト内の「HTML」を取得するものだと思ったのですが。。。
ソース通りに取得してくれるのが正しい挙動だと思うのですが。。。

IE6、IE7で当現象が発生する事を確認済み。
又、Firefox3.5.5では当現象は発生しないようです。

サンプルURL↓
http://jsbin.com/upeyi

サンプルソース↓
<html>
<head>
<script>
function testfunc() {
str = document.getElementById('test2').innerHTML
alert('[' + str + ']');
}
function testfunc2() {
str = document.getElementById('test').childNodes[0].firstChild.nodeValue;
alert('[' + str + ']');
}
</script>
</head>
<body>
<div id="test"><div id="test2">  blank  blank  </div></div>
<input type="button" value="CLICK ME1" onclick="testfunc()"><br>
<input type="button" value="CLICK ME2" onclick="testfunc2()">
</body>
</html>

K.Y
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2005 RIAトピックス all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。