Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как работать со startContainer, endContainer и подобным? (https://javascript.ru/forum/misc/7524-kak-rabotat-so-startcontainer-endcontainer-i-podobnym.html)

Бобр 06.02.2010 17:43

Как работать со startContainer, endContainer и подобным?
 
Как работать со startContainer, endContainer и подобным?

В Гугле всё на английском и примеры какие-то непонятные.
Нужно, чтобы можно было выделить текст на страничке, кликнуть на кнопку, и получить тег, в котором находится первая буква выделенного текста. Вроде это через startContainer делается. Но как - не могу понять.

Бобр 06.02.2010 18:42

Например:
alert(window.getSelection().startContainer);


Не работает. Чего им надо? Вот получили выделение getSelection, вот хочу получить startContainer - не дают. Пишу commonAncestorContainer - тоже не дают. Ничего не дают.

Octane 06.02.2010 18:49

плохие какие :-E не дают и все…



Цитата:

Сообщение от Бобр
lert(window.getSelection().startContainer);

Selection и Range разные вещи, а еще есть TextRange.

Бобр 06.02.2010 19:45

Цитата:

Сообщение от Octane (Сообщение 43767)
плохие какие :-E не дают и все…

Selection и Range разные вещи, а еще есть TextRange.

Там написано startContainer - это свойства или метод Range. Чтобы получить Range нужно знать тег, который у них обозначен 'ex2' ...

$domRange = {
    create : function() {
        // Найдем root-контейнер
        var root =  document.getElementById('ex2');
            var rng = root.createRange();


То есть чтобы узнать тег, нужно знать тег ...


Можно просто одной строчкой кода, как мне узнать тег в котором находится первая выделенная буква?

Octane 06.02.2010 20:04

window.getSelection().getRangeAt(0).startContainer

subzey 06.02.2010 20:15

http://immelman.ru/bookmarklets/selected.js

Можете поковырять, вдруг, Вам пригодится что-нибудь оттуда.

Сразу предупрежу, букмарклет кривой до ужаса — написан за пару часов в свободное время, — но со своей основной задачей (не обучать дизайнеров работе с Dragonfly :)) он справляется.

Бобр 06.02.2010 20:47

Цитата:

Сообщение от Octane (Сообщение 43783)
window.getSelection().getRangeAt(0).startContainer

Спасибо. :)

Замучился с этой проблемой.


Часовой пояс GMT +3, время: 14:49.