[JavaScript] 選択された文字列を得る

シャープが発表した電子書籍端末ガラパゴスの20文字しかコピー出来ないという仕様があまりに衝撃的だったので、
実際20文字ってどれくらいなの?というのが体感できるものを組んでみた。

Galápagos 20 – jsdo.it – share JavaScript, HTML5 and CSS

画面上で選択された文字列の取得方法はIEとその他でちょっと違うんだけど、
文字を選択する時のマウスの動かし方は マウスダウン→ドラッグで選択→マウスアップ となるので、イベントハンドラはonMouseupが妥当だと思います。

抜粋:

if(!Browser.Engine.trident) {//IE以外
	var selection = window.getSelection();
	total = selection.toString().length;			
}else{//IEの場合
	var text = document.selection.createRange().text;
	total = text.length;
}

window.getSelection()はSelectionオブジェクトを返します。
選択された文字や文字の長さなどが欲しい場合にはtoString()が必要です。
IEの場合はdocument.selection.createRange()で、戻り値のRangeオブジェクトにあるtextプロパティが選択されている文字なので、そのままlengthが有効。

それにしても20文字は少ないよね。

1件のコメント

Leave a Comment.