1

Тема: IE, Javascript: как узнать перечень выделеных на странице элементов

Коллеги, еще один дурацкий вопрос: при работе с выделением на странице, кроме как получение в текстовом виде выделенного содержимого, можно еще как-то узнать - какие элементы разметки попали в выделение?

Например, на странице имеется таблица. Часть текста в одной из ее ячеек выделена и хотелось бы узнать номер строки таблицы с ячейкой, в которой это выделение.

WBR. Roman

2

Re: IE, Javascript: как узнать перечень выделеных на странице элементов

<script>
function myFunc ()
{
var docSel = document.selection,
    txtRange = docSel.createRange (),
    parElem = txtRange.parentElement ();

alert ('В теге\n-----\n'
      + parElem.outerHTML
      + '\n-------\nвыделен следующий HTML-код:\n-------\n'
      + txtRange.htmlText);
}
</script>

<body onlosecapture="myFunc ()">

3

Re: IE, Javascript: как узнать перечень выделеных на странице элементов

kalabuni, спасибо!
html-код ячейки получил, теперь есть над чем подумать

WBR. Roman

4

Re: IE, Javascript: как узнать перечень выделеных на странице элементов

//...
while (parElem.tagName != 'TR') parElem = parElem.parentNode;
alert (parElem.rowIndex);

5

Re: IE, Javascript: как узнать перечень выделеных на странице элементов

Коллеги, прошу прощения за реанимацию) старой темы, но вопрос почти по её продолжению.

С помощью своего контекстного меню, вызываемого в браузере IE по правой клавише, я был сделал много полезных утилиток, но во всех них действовал один принцип - до вызова меню, предварительно на IE-странице пользователю нужно было выделить хоть немножко контента , чтобы потом через указанный выше код:

var docSel = document.selection,
    txtRange = docSel.createRange (),
    parElem = txtRange.parentElement ();

можно было работать с объектами родителя.



А сейчас стоит задача работать своим контекстным меню лишь при вызове меню на гиперссылках родительской страницы, т.е. нужно получать доступ к объекту на документе (гиперссылке), не используя "document.selection".

Вот, пример начала кода на странице вызванного меню, которое чудно работает при выделении чего-то на родительской странице перед вызовом меню. Теперь, естесственно, на отладочном алерте "ku3" обработка и прерывается:

    alert('ku1');
    var parentwin = external.menuArguments;     // получаем объект окна
    alert('ku2');
    var doc = parentwin.document;               // получаем объект документа
    alert('ku3');
    var doc_parElem = doc.selection.createRange ().parentElement ();
    alert('ku4');
    var sParElem = doc_parElem.outerHTML;       // код элемента, на котором выполняли выделение
    alert('ku5');

alert ('В теге\n-----\n'
      + doc_parElem.outerHTML
      + '\n-------\nвыделен следующий HTML-код:\n-------\n'
      + txtRange.htmlText);

Не нахожу как это сделать - прошу подсказки.

WBR. Roman

6

Re: IE, Javascript: как узнать перечень выделеных на странице элементов

Перещупал свойства и разобрался:)
Добрался через объект


external.menuArguments['event']
WBR. Roman