JavaScriptには、ユーザーのテキスト選択にアクセスし、テキスト選択(または範囲)を作成するためのさまざまな方法があります— http://www.quirksmode.org/dom/range_intro.html を参照してください。
そのページに従って、プログラムで範囲を作成し、その中のテキストにアクセスできます。ただし、これを行っても、ユーザーのテキスト選択は変更されません。また、まだ選択されていない場合は、ユーザーにテキストを選択させることもできません。
JavaScriptでユーザーのテキスト選択を設定および/または変更できますか?
はい。すべてのブラウザで、ユーザーの選択から1つ以上のRange
sまたはTextRange
を取得でき、Range
とTextRange
の両方にの内容を変更するためのメソッドがあります。範囲。
[〜#〜]更新[〜#〜]
ほとんどのブラウザでRange
を作成してSelection
オブジェクトに追加し、TextRange
を作成してそのselect()
を呼び出すことにより、ユーザーの選択を設定できます。 IE <= 8のメソッド。
たとえば、要素のコンテンツを含むように選択を設定するには、次のようにします。
function selectElementContents(el) {
if (window.getSelection && document.createRange) {
var sel = window.getSelection();
var range = document.createRange();
range.selectNodeContents(el);
sel.removeAllRanges();
sel.addRange(range);
} else if (document.selection && document.body.createTextRange) {
var textRange = document.body.createTextRange();
textRange.moveToElementText(el);
textRange.select();
}
}
Selection
オブジェクトには、IE以外のブラウザーでユーザーの選択を変更するために使用できるいくつかのメソッドもあります。選択をどのように変更するかについてより具体的にすることができれば、支援が容易になります。