aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/window/getselection/index.html
blob: bbfeac09121c044dbe074acbcc8a8403920632f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
---
title: Window.getSelection()
slug: Web/API/Window/getSelection
translation_of: Web/API/Window/getSelection
---
<div>{{ ApiRef() }}</div>

<h2 id="Summary">Коротко</h2>

<p>Метод возвращает объект {{domxref("Selection")}}, представленный в виде диапазона текста, который пользователь выделил на странице.</p>

<h2 id="Syntax">Синтаксис</h2>

<pre class="syntaxbox"><em>selection</em> = <em>window</em>.getSelection();</pre>

<h3 id="Значение">Значение</h3>

<p><font face="consolas, Liberation Mono, courier, monospace">Объект </font>{{domxref("Selection")}}.</p>

<p>При добавлении в параметр пустую строку или воспользовавшись методом {{jsxref("Selection.toString()")}} вам вернут строку, которую выделил пользователь.</p>

<h2 id="Example">Пример</h2>

<pre class="brush:js">function foo() {
    var selObj = window.getSelection();
    alert(selObj);
    var selRange = selObj.getRangeAt(0);
    // вернёт диапазон Range
}</pre>

<h2 id="Notes">Примечания</h2>

<h3 id="String_representation_of_the_Selection_object">String representation of the Selection object</h3>

<p>В JavaScript при попытке передать в функцию, принимающую строку (как на пример {{ Domxref("window.alert()") }} или же {{ Domxref("document.write()") }}), функция попробует сделать из любого параметра строку, даже если этот параметр является объектом, функцией со своими методами и свойствами.</p>

<p>В приведённом выше примере <code>selObj.toString() автоматически задействуется, когда мы передаём в </code>{{domxref("window.alert()")}} переменную selObj как параметр, который должен быть строкой. Однако мы не можем использовать свойства и метода объекта String, как на пример : <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length" title="JS/String.length">length</a></code>, <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr" title="JS/String.substr">substr</a></code>. В следствии чего, вам необходимо будет применить вручную метод   <code>toString(), как тут:</code></p>

<pre class="brush:js;gutter:false;">var selectedText = selObj.toString();</pre>

<ul>
 <li><code>selObj</code> это объект <code>Selection</code>.</li>
 <li><code>selectedText</code> это строка  (Выделенный текст).</li>
</ul>

<h3 id="Родственные_объекты">Родственные объекты</h3>

<p>Вы так же можете использовать такой способ вызова {{domxref("Document.getSelection()")}}, который работает идентично {{domxref("Window.getSelection()")}}.</p>

<p>Поля ввода HTML (inputs) предоставляют более удобный API для работы с выделенным текстом (смотрите {{domxref("HTMLInputElement.setSelectionRange()")}}).</p>

<p>На заметку, разница между <em>selection</em> и <em>focus</em>. {{domxref("Document.activeElement")}}  - это то, что вернётся элемент, который выделен (focused) .</p>

<h2 id="Спецификации">Спецификации</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Спецификация</th>
   <th scope="col">Статус</th>
   <th scope="col">Комментарий</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName("Selection API", "#extensions-to-window-interface", "Window.getSelection()")}}</td>
   <td>{{Spec2("Selection API")}}</td>
   <td>Новая специф.</td>
  </tr>
  <tr>
   <td>{{SpecName("HTML Editing", "#dom-window-getselection", "Window.getSelection()")}}</td>
   <td>{{Spec2("HTML Editing")}}</td>
   <td>Начальное определение</td>
  </tr>
 </tbody>
</table>

<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>

<p>{{Compat("api.Window.getSelection")}}</p>

<h2 id="See_also"></h2>

<h2 id="See_also">Смотрите также</h2>

<ul>
 <li><a href="/en-US/docs/Web/API/Selection_API">Selection API</a></li>
 <li>{{domxref("Selection")}}</li>
 <li>{{domxref("Range")}}</li>
 <li>{{domxref("Document.getSelection()")}}</li>
 <li>{{domxref("HTMLInputElement.setSelectionRange()")}}</li>
</ul>