Метод Selection: containsNode()
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает во многих устройствах и версиях браузеров. Она доступна во всех браузерах с марта 2017 года.
Метод Selection.containsNode() указывает, является ли указанный узел частью выделенного текста.
Синтаксис
containsNode(node) containsNode(node) containsNode(node, partialContainment)
Параметры
node-
Узел, который ищется в выделенном тексте.
partialContainmentНеобязательно-
Когда
true,containsNode()возвращаетtrue, если часть узла входит в выделение. Когдаfalse,containsNode()возвращаетtrueтолько в том случае, если весь узел включён в выделение. Если не указано, используется значение по умолчаниюfalse.
Возвращаемое значение
Возвращает true , если данный узел входит в выделение, и false в противном случае.
Примеры
Проверка выделения
Этот фрагмент кода проверяет, выделена ли какая-либо часть внутри элемента body.
console.log(window.getSelection().containsNode(document.body, true));
Поиск скрытого слова
В этом примере появляется сообщение, когда вы выделяете секретное слово. Он использует addEventListener() для проверки событий selectionchange.
HTML
<p>Can you find the secret word?</p> <p> Hmm, where <span id="secret" style="color:transparent">SECRET</span> could it be? </p> <p id="win" hidden>You found it!</p>
JavaScript
const secret = document.getElementById("secret");
const win = document.getElementById("win");
// Listen for selection changes
document.addEventListener("selectionchange", () => {
const selection = window.getSelection();
const found = selection.containsNode(secret);
win.toggleAttribute("hidden", !found);
});
Результат
Спецификации
| Спецификация |
|---|
| Selection API # dom-selection-containsnode |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
containsNode |
1 | 12 | 1До Firefox 35 метод не выбрасывал исключение, еслиnode был null. |
≤12.1 | 3.1 | 18 | 4До Firefox для Android 35 метод не выбрасывал исключение, еслиnode был null. |
≤12.1 | 2 | 1.0 | 4.4 |
partialContainment_parameter_optional |
1 | ≤79 | 55 | ≤15 | 3.1 | 18 | 55 | ≤14 | 2 | 1.0 | ≤37 |
См. также
-
Selection, интерфейс, к которому он принадлежит.
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Selection/containsNode