メモのコツを教えてください!

IEだと文頭に半角スペースがある場合は詰められ、文中に半角スペースが連続する場合は一つにまとめられてしまいます。

ただ、innerHTMLだと正しく取れると思っていましたがやはり詰められて取得されてしまいます。
ただしく取得できる方法を模索しております。
hiddenに値を設定などではなく、現在のHTMLからの取得方法をお願い致します。

下記のソースで状況を再現できますのでご確認ください(blankの間のスペースは2つ空いています)
<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>

A 回答 (2件)

innerHTML は文字通り、タグの中の html なので特別な例外は存在しません。


div タグの代わりに、pre や xmp タグを使ってはいかがでしょうか。
    • good
    • 0
この回答へのお礼

特別な例外は存在しないのですか。。。
そもそも入力させないなど別の回避手段を考えます。
回答ありがとうございます。

お礼日時:2009/12/01 10:54

半角スペースの連続は無視されてしまいます。



実際参照ではだめですか?

で半角スペースが表示されます。

innerHTMLで取得すると、""という文字列がとれ
alertで表示すると""と表示されると思うので
javascript内で
do{
str = str.replace("", " ");
}while(str.indexOf("") >=0 )

とすればよいでしょう
    • good
    • 0
この回答へのお礼

文字参照も考えたのですが、表示時に置き換えた上で更にJavascriptで取得時に再度置きかえが必要なのがちょっと。。。

そもそも入力させないなど別の回避手段を考えます。
回答ありがとうございます。

お礼日時:2009/12/01 10:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!