2011-01-16 4 views
1

を出た後に休憩を倍増します余分な休憩を取る。そして、私は上記のjavascriptを実行するたびに来ています。 、なぜあなたは二行?は<br>を削除し、テキストだけ

ブレークは通常、あまりにも、一つの閉じタグとして行われます。<br/>の代わり<br>があると期待していないあなたがそこに2つのブレークを持って

+1

私は複製できません。.. http://jsfiddle.net/GFyuP/ – Chandu

+0

@Cyber​​nate下記の私の答えでHTMLを試してください。私も正確には複製できませんでしたが、IE7とFirefox 3.6.xの別の結果が得られました。 –

答えて

3

htmlをinnerHTMLプロパティに割り当てると、ブラウザはそのページのDOCTYPEに基づいてその文字列を解釈します。ブラウザがそのDOCTYPE用に実装したパーサとその標準のブラウザの実装によって、その文字列が解釈されます。別の方法で読むと、「さまざまなブラウザで異なる結果が得られることが保証されます」

それぞれのブラウザでは、次のHTMLが若干異なって解釈されます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Testing textcontent</title> 
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" > 
</head> 
<body> 

<form action=""> 
<textarea id="onlyText" rows="5" cols="40"></textarea> 
<script type="text/javascript"> 
/*<![CDATA[*//*---->*/ 
var html = "text text <br><br> text"; 
var noTags = document.createElement("DIV"); 
noTags.innerHTML = html; 

// Retrieve text from html 
var textContent = ""; 
var oe = document.getElementById("onlyText"); 

if (oe.innerText == undefined) { 
    textContent = noTags.textContent; 
} else { 
    textContent = noTags.innerText; 
} 

alert("DEBUG: textContent = " + textContent); 


oe.innerHTML = textContent; 

/*--*//*]]>*/ 
</script> 
</form> 

</body> 
</html> 

ようこそinterwebs。コードは異なります。

0

:-(助けてください。

+0

XHTMLでは、「
」(または「
」を使用する必要がありますが、それは愚かです;-)。しかし、HTMLでは '
'に終了タグはありません。 http://www.w3.org/TR/html401/struct/text.html#h-9.3.2.1 –

+0

@Dan Breslauを参照してください。 OPは彼が説明できなかったテキスト出力でEXTRA改行に気づいていました。 –

+0

あなたは正しいです - 私は誤解しました。ごめんなさい。 – MikeTheReader

関連する問題