SQLの窓

2014年02月25日


JavaScript : リンクのテキストの取得( Chrome、Firefox、IE / textContent、innerText、text、replace、jQuery )

標準でクロスブラウジング無しなら、replace なんですが、&lt; や &gt; に変換されている場合は、 innerHTML で < と > に戻るので、他は < と > を保持するのに対して、replace のみ 取り去ってしまいます。

となると、jQuery にまかせたほうが良いという事になります。

こうして並べてみると、Google Chrome の text が特異に見えます。元々は、IE の innerText が特異ではあったと思うのですが、Google Chrome が innerText を実装している流れで、text を改行ありにしたんだろうとは思います。改行無しなら textContent でいいわけですし。
<script>
if ( !window.jQuery ) {
	if ( typeof window[window.location.hostname+'.loadjQuery'] === 'undefined' ) {
		if ( window.addEventListener ) {
			window[window.location.hostname+'.loadjQuery'] = '//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js';
		}
		else {
			window[window.location.hostname+'.loadjQuery'] = '//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js';
		}
	}
	document.write("<"+"script src=\"" + window[window.location.hostname+'.loadjQuery'] + "\"></"+"script>");
}
</script>

<a id="target" href="http://winofsql.jp"><b>あああ</b><br/><b>いいい</b><br/></a>
<script type="text/javascript">

var obj = document.getElementById("target");

if ( obj.textContent ) {
	alert("textContent:" + obj.textContent );
}

if ( obj.innerText) {
	alert("innerText:" + obj.innerText);
}

if ( obj.text ) {
	alert("text:" + obj.text);
}

var htmlString = document.getElementById("target").innerHTML;
var htmlString = htmlString.replace(/<[^>]+>/g, ""); 
alert("replace:"+htmlString );

alert( "jQuery:" + $("#target").text());

</script>


textContent innerText text replace jQuery
Chrome 改行なし 改行あり 改行あり 改行なし 改行なし
Firefox 改行なし × 改行なし 改行なし 改行なし
IE10・IE11 改行なし 改行あり 改行なし 改行なし 改行なし
IE9 改行なし 改行あり × 改行なし 改行なし
IE8 × 改行あり × 改行なし 改行なし



posted by lightbox at 2014-02-25 20:50 | JavaScript DOM | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり