HTMLTextAreaElement.setRangeText() - 任意の範囲にテキストを挿入する
公開日:
HTMLTextAreaElement.setRangeText()は、HTMLTextAreaElementのメソッドです。textarea要素の指定した範囲にテキストを挿入します。キャレットは、テキストを挿入した位置に移動します。
概要
IDL
void setRangeText(DOMString replacement);
void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
enum SelectionMode {
"select",
"start",
"end",
"preserve" // default
};
引数
第1引数: replacement
DOMString replacement
挿入するテキスト。
第2引数: start
unsigned long start
範囲の開始位置のオフセット。
第3引数: end
unsigned long end
範囲の終了位置のオフセット。
第4引数: selectionMode (省略可)
optional SelectionMode selectionMode = "preserve"
テキスト挿入後の挙動。下記の中から文字列で指定する。
- "select"
- 挿入したテキストを選択状態にする。
- "start"
- 挿入したテキストの前方にキャレットを移動する。
- "end"
- 挿入したテキストの後方にキャレットを移動する。
- "preserve"
- 初期値。選択状態を維持する。
返り値
void
返り値はありません。
脚注
DOMString
UTF-16の文字列。
enum
列挙型の値であることを表し、指定できる値を定義しています。
optional
引数が省略可能であることを表します。
unsigned long
0〜232-1の整数。
void
undefined
が返ることを表す。
仕様書
https://html.spec.whatwg.org/multipage/forms.html#htmltextareaelement
説明
setRangeText()は、選択範囲を新しいテキストに差し替えるメソッドです。第1引数だけを指定した場合、その時の選択範囲が対象になります。範囲選択がされていない場合は、キャレットの位置に挿入されます。キャレットの位置はデフォルトでは先頭です。
HTML
<textarea id="hoge">12345678901234567890</textarea>
JavaScript
// 要素の取得
var element = document.getElementById( "hoge" ) ;
// メソッドを実行
element.setRangeText( "新しいテキスト" ) ; // その時の選択範囲が"新しいテキスト"に差し替えられる
第2引数と第3引数で範囲を指定した場合は、その範囲が対象になります。第2引数と第3引数は、指定する時も省略する時もセットでなければいけません。
JavaScript
// メソッドを実行
element.setRangeText( "新しいテキスト", 5, 10 ) ; // 6〜10文字目が"新しいテキスト"に差し替えられる
第4引数で、テキストを挿入した後の挙動を指定できます。
JavaScript
// メソッドを実行
element.setRangeText( "新しいテキスト", 5, 10 ) ; // 選択範囲を維持
element.setRangeText( "新しいテキスト", 5, 10, "preserve" ) ; // 選択範囲を維持
element.setRangeText( "新しいテキスト", 5, 10, "select" ) ; // 挿入したテキストを選択状態にする
element.setRangeText( "新しいテキスト", 5, 10, "start" ) ; // 挿入したテキストの前方にキャレットを移動する。
element.setRangeText( "新しいテキスト", 5, 10, "end" ) ; // 挿入したテキストの後方にキャレットを移動する。
サンプルコード
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>【デモ】HTMLTextAreaElement.setRangeText() - 任意の範囲にテキストを挿入する</title>
<link rel="canonical" href="https://syncer.jp/Web/API_Interface/Reference/IDL/HTMLTextAreaElement/setRangeText/">
<meta content="width=device-width,initial-scale=1.0" name="viewport">
<script src="https://demo.syncer.jp/js/demo-web_api_interface.js"></script>
<script>
window.addEventListener( "load", function () {
syncer.setup ( {
method: {
execute: {
use: true ,
callback: [
{
function: (typeof myMethod === "function" ? myMethod : null) ,
}
] ,
} ,
} ,
error: {
use: true ,
} ,
console: {
use: true ,
} ,
} ) ;
} ) ;
</script>
<style>
body {
font: 400 15px/1.618 -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica Neue, Hiragino Kaku Gothic ProN, メイリオ, meiryo, sans-serif ;
background-color: #fff ;
}
textarea {
font-size: 16px ;
width: 80% ;
}
form p {
margin-bottom: 0px ;
}
form p + p {
margin-top: 0px ;
}
</style>
</head>
<body>
<p>メソッドを実行すると、その3秒後に、setRangeText()を実行し、テキストを挿入します。ボタンをクリックしてから3秒以内に範囲選択をして、挙動を確かめてみて下さい。</p>
<form action="/php/form/1.php">
<p><textarea id="hoge" name="fuga">123456789012345678901234567890</textarea></p>
<p><button>内容を送信</button> <button type="reset">リセット</button></p>
</form>
<script>
// setRangeText()
function myMethod () {
// 要素を取得
var element = document.getElementById( "hoge" ) ;
// 3秒後にメソッドを実行
setTimeout( function () {
element.setRangeText( "AAAAA" ) ;
// element.setRangeText( "AAAAA", 5, 10, "preserve" ) ;
}, 3000 ) ;
}
</script>
</body>
</html>
デモ
サポート状況
HTMLTextAreaElement.setRangeText()のサポート状況です。
ブラウザ | サポート状況 | ブラウザ | サポート状況 |
---|---|---|---|
Chrome | Supported 24+ | Firefox | Supported 27+ |
Edge | Not Supported | Internet Explorer | Not Supported |
Safari | Supported 7.1+ | Opera | Supported 15+ |
iOS Safari | Supported 7.0+ | Android | Supported 4.4+ |
Chrome
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
57 | Supported | 2017年3月頃 | 0.1% |
56 | Supported | 2017年1月頃 | 12.02% |
55 | Supported | 2016年12月頃 | 12.36% |
54 | Supported | 2016年10月頃 | 0.44% |
53 | Supported | 2016年9月頃 | 0.25% |
52 | Supported | 2016年7月頃 | 0.27% |
51 | Supported | 2016年6月頃 | 0.4% |
50 | Supported | 2016年4月頃 | 0.32% |
49 | Supported | 2016年3月頃 | 0.47% |
48 | Supported | 2016年1月頃 | 0.02% |
47 | Supported | 2015年12月頃 | 0.06% |
46 | Supported | 2015年10月頃 | 0.56% |
45 | Supported | 2015年9月頃 | 0.01% |
44 | Supported | 2015年7月頃 | 0.83% |
43 | Supported | 2015年5月頃 | 0.05% |
42 | Supported | 2015年4月頃 | 0.05% |
41 | Supported | 2015年3月頃 | 0.01% |
40 | Supported | 2015年1月頃 | 0.59% |
39 | Supported | 2014年11月頃 | 0.02% |
38 | Supported | 2014年10月頃 | 0.08% |
37 | Supported | 2014年8月頃 | 0.01% |
36 | Supported | 2014年7月頃 | 0.01% |
35 | Supported | 2014年5月頃 | 0.01% |
34 | Supported | 2014年4月頃 | 0.14% |
33 | Supported | 2014年2月頃 | 0.01% |
32 | Supported | 2014年1月頃 | 0% |
31 | Supported | 2013年11月頃 | 0.01% |
30 | Supported | 2013年10月頃 | 0.03% |
29 | Supported | 2013年8月頃 | 0% |
28 | Supported | 2013年6月頃 | 0.03% |
27 | Supported | 2013年5月頃 | 0.01% |
26 | Supported | 2013年3月頃 | 0% |
25 | Supported | 2013年2月頃 | 0% |
24 | Supported | 2013年1月頃 | 0% |
23 | Not Supported | 2012年11月頃 | 0% |
22 | Not Supported | 2012年9月頃 | 0% |
21 | Not Supported | 2012年7月頃 | 0% |
20 | Not Supported | 2012年6月頃 | 0% |
19 | Not Supported | 2012年5月頃 | 0% |
18 | Not Supported | 2012年3月頃 | 0.01% |
17 | Not Supported | 2012年2月頃 | 0.01% |
16 | Not Supported | 2011年12月頃 | 0% |
15 | Not Supported | 2011年10月頃 | 0% |
14 | Not Supported | 2011年9月頃 | 0% |
Firefox
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
52 | Supported | 2017年3月頃 | 0.12% |
51 | Supported | 2017年1月頃 | 1.7% |
50 | Supported | 2016年11月頃 | 0.78% |
49 | Supported | 2016年9月頃 | 0.02% |
48 | Supported | 2016年8月頃 | 0.07% |
47 | Supported | 2016年6月頃 | 0.03% |
46 | Supported | 2016年4月頃 | 0.01% |
45 | Supported | 2016年3月頃 | 0.1% |
44 | Supported | 2016年1月頃 | 0.01% |
43 | Supported | 2015年12月頃 | 0.02% |
42 | Supported | 2015年11月頃 | 0.01% |
41 | Supported | 2015年9月頃 | 0% |
40 | Supported | 2015年8月頃 | 0.02% |
39 | Supported | 2015年7月頃 | 0.01% |
38 | Supported | 2015年5月頃 | 0.02% |
37 | Supported | 2015年3月頃 | 0% |
36 | Supported | 2015年2月頃 | 0.01% |
35 | Supported | 2015年1月頃 | 0% |
34 | Supported | 2014年12月頃 | 0.01% |
33 | Supported | 2014年10月頃 | 0% |
32 | Supported | 2014年9月頃 | 0% |
31 | Supported | 2014年7月頃 | 0.01% |
30 | Supported | 2014年6月頃 | 0% |
29 | Supported | 2014年4月頃 | 0% |
28 | Supported | 2014年3月頃 | 0.01% |
27 | Supported | 2014年2月頃 | 0% |
26 | Not Supported | 2013年12月頃 | 0% |
25 | Not Supported | 2013年10月頃 | 0% |
24 | Not Supported | 2013年9月頃 | 0% |
23 | Not Supported | 2013年8月頃 | 0% |
22 | Not Supported | 2013年6月頃 | 0% |
21 | Not Supported | 2013年5月頃 | 0% |
20 | Not Supported | 2013年4月頃 | 0% |
19 | Not Supported | 2013年2月頃 | 0% |
18 | Not Supported | 2013年1月頃 | 0% |
17 | Not Supported | 2012年11月頃 | 0% |
16 | Not Supported | 2012年10月頃 | 0% |
15 | Not Supported | 2012年8月頃 | 0% |
14 | Not Supported | 2012年7月頃 | 0% |
13 | Not Supported | 2012年6月頃 | 0% |
12 | Not Supported | 2012年4月頃 | 0% |
11 | Not Supported | 2012年3月頃 | 0% |
10 | Not Supported | 2012年1月頃 | 0% |
9 | Not Supported | 2011年12月頃 | 0% |
8 | Not Supported | 2011年11月頃 | 0% |
7 | Not Supported | 2011年9月頃 | 0% |
6 | Not Supported | 2011年8月頃 | 0% |
5 | Not Supported | 2011年6月頃 | 0% |
4 | Not Supported | 2011年3月頃 | 0% |
Edge
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
14 | Not Supported | 2016年2月頃 | 1.05% |
13 | Not Supported | 2015年9月頃 | 0.08% |
Internet Explorer
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
11 | Not Supported | 2013年10月頃 | 4.99% |
10 | Not Supported | 2012年8月頃 | 0.09% |
9 | Not Supported | 2011年3月頃 | 0.18% |
8 | Not Supported | 2009年3月頃 | 0.04% |
7 | Not Supported | 2006年10月頃 | 0.01% |
6 | Not Supported | 2001年8月頃 | 0% |
Safari
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
10 | Supported | 2016年10月頃 | 0% |
9.1 | Supported | 2015年9月頃 | 0% |
8.0 | Supported | 2014年10月頃 | 0% |
7.1 | Supported | 2013年10月頃 | 0% |
6.0 | Not Supported | 2012年7月頃 | 0% |
5.1 | Not Supported | 2011年7月頃 | 0% |
4 | Not Supported | 2009年6月頃 | 0% |
Opera
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
43 | Supported | 2017年2月頃 | 0.06% |
42 | Supported | 2016年12月頃 | 0.09% |
41 | Supported | 2016年10月頃 | 0.01% |
40 | Supported | 2016年9月頃 | 0% |
39 | Supported | 2016年8月頃 | 0% |
38 | Supported | 2016年6月頃 | 0% |
37 | Supported | 2016年5月頃 | 0.01% |
36 | Supported | 2016年3月頃 | 0.01% |
35 | Supported | 2016年2月頃 | 0% |
34 | Supported | 2015年12月頃 | 0% |
33 | Supported | 2015年10月頃 | 0% |
32 | Supported | 2015年9月頃 | 0% |
31 | Supported | 2015年8月頃 | 0% |
30 | Supported | 2015年6月頃 | 0% |
29 | Supported | 2015年4月頃 | 0% |
28 | Supported | 2015年3月頃 | 0% |
27 | Supported | 2015年1月頃 | 0% |
26 | Supported | 2014年12月頃 | 0% |
25 | Supported | 2014年10月頃 | 0% |
24 | Supported | 2014年9月頃 | 0% |
23 | Supported | 2014年7月頃 | 0% |
22 | Supported | 2014年6月頃 | 0% |
21 | Supported | 2014年5月頃 | 0.01% |
20 | Supported | 2014年3月頃 | 0% |
19 | Supported | 2014年1月頃 | 0% |
18 | Supported | 2013年11月頃 | 0% |
17 | Supported | 2013年10月頃 | 0% |
16 | Supported | 2013年8月頃 | 0% |
15 | Supported | 2013年7月頃 | 0% |
12 | Not Supported | 2012年6月頃 | 0.02% |
11.6 | Not Supported | 2011年12月頃 | 0% |
11.1 | Not Supported | 2011年4月頃 | 0% |
iOS Safari
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
10.0 | Supported | 2016年9月頃 | 39.65% |
9.1 | Supported | 2015年9月頃 | 5.39% |
8.3 | Supported | 2014年9月頃 | 1.03% |
7.0 | Supported | 2013年9月頃 | 0.24% |
6.0 | Not Supported | 2012年9月頃 | 0.05% |
5.1 | Not Supported | 2011年10月頃 | 0.03% |
Android
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
4.4 | Supported | 2013年10月頃 | 0% |
4.3 | Not Supported | 2013年7月頃 | 0% |
4.2 | Not Supported | 2013年3月頃 | 0.03% |
4.1 | Not Supported | 2012年12月頃 | 0% |
4.0 | Not Supported | 2012年6月頃 | 1.61% |
2.3 | Not Supported | 2011年10月頃 | 0% |