シャープが発表した電子書籍端末ガラパゴスの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文字は少ないよね。
「[JavaScript] 選択された文字列を得る」への1件のフィードバック