|
AIR(WebKit)のTextArea では、しっかりと、setSelectionRange、selectionStart、selectionEndがサポートがされています。TextArea の選択範囲を取るのが楽です。 以下は、AIR で、コピー&ペーストを行うサンプルです。
<body>
<!-- ui -->
<div>
<textarea id="a_txt" rows=8 cols=40></textarea><br/>
<input type="button" value="copy" onclick="copyToCB()"/>
<input type="button" value="paste" onclick="pasteFromCB()"/>
</div>
<!-- script -->
<script src="AIRAliases.js"></script>
<script>
function $(name) { return document.getElementById(name); }
var g = air.Clipboard.generalClipboard;
var a_txt = $("a_txt");
function copyToCB() {
// textarea の選択範囲を取得
var text = a_txt.value;
var str = text.substring(a_txt.selectionStart, a_txt.selectionEnd);
// コピー
g.clear();
g.setData(air.ClipboardFormats.TEXT_FORMAT, str);
}
function pasteFromCB() {
// 貼り付け可能?
if (!g.hasFormat(air.ClipboardFormats.TEXT_FORMAT)) return;
// データを得る
var cb_data = g.getData(air.ClipboardFormats.TEXT_FORMAT);
// textarea に挿入する
var text = a_txt.value;
var start = a_txt.selectionStart;
var last = text.length;
a_txt.value = text.substring(0, start) + cb_data +
text.substring(start, last);
// カーソルを正しく移動する
a_txt.focus();
var new_index = start + cb_data.length;
a_txt.setSelectionRange(new_index, new_index);
}
</script>
</body>
コメント→コメント編集
|