Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.08.2010, 15:04
Новичок на форуме
Отправить личное сообщение для TheMixa Посмотреть профиль Найти все сообщения от TheMixa
 
Регистрация: 09.08.2010
Сообщений: 2

Получить текущий элемент выделения
Добрый день.

Прошу подсказать как получить текущий элемент выделения используя javascript. Ситуация такая, пишу программу на QT, в ней используется qwebkit и необходимо узнать что выделенно пользователем чтобы сформировать контекствное меню на основании того что выделил пользователь(картинку или таблицу или еще что). Представляется возможным только через JavaScript+DOM.

Значит делаю так:
1)
Код:
qDebug() << execJS("document.getSelection().toString()");
и получаю выделенную строку
2)
Код:
qDebug() << execJS("document.getSelection().getSelectedElement().getName().toString()");
ничего не получаю

Пробую CKEditor и aurora c этой же версией qwebkit там похоже getSelectedElement() срабатывает. Vожет я что упустил? Вот кусок кода из CKEditor

onShow : function()

			{

				// Detect if there's a selected table.

				var selection = editor.getSelection(),

					ranges = selection.getRanges(),

					selectedTable = null;



				var rowsInput = this.getContentElement( 'info', 'txtRows' ),

					colsInput = this.getContentElement( 'info', 'txtCols' ),

					widthInput = this.getContentElement( 'info', 'txtWidth' );

				if ( command == 'tableProperties' )

				{

					if ( ( selectedTable = editor.getSelection().getSelectedElement() ) )

					{

						if ( selectedTable.getName() != 'table' )

							selectedTable = null;

					}

					else if ( ranges.length > 0 )

					{

						// Webkit could report the following range on cell selection (#4948):

						// <table><tr><td>[&nbsp;</td></tr></table>]

						if ( CKEDITOR.env.webkit )

							ranges[ 0 ].shrink( CKEDITOR.NODE_ELEMENT );



						var rangeRoot = ranges[0].getCommonAncestor( true );

						selectedTable = rangeRoot.getAscendant( 'table', true );

					}



					// Save a reference to the selected table, and push a new set of default values.

					this._.selectedElement = selectedTable;

				}
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2010, 17:15
Новичок на форуме
Отправить личное сообщение для TheMixa Посмотреть профиль Найти все сообщения от TheMixa
 
Регистрация: 09.08.2010
Сообщений: 2

спасибо разобрался, пришлось посмотреть DOM-модель в которой нет никакого getSelectedElement().

можно использовать document.getSelection().baseNode.parentNode.tagNam e.toString()
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35
Как получить второй дочерний элемент, или второй смежный libinstyle Events/DOM/Window 4 30.06.2010 20:41
Как получить указатель на элемент вызвавший функцию pelayo Общие вопросы Javascript 9 29.06.2010 23:32
текущий DOM-элемент документа в ИЕ hmel Events/DOM/Window 1 11.01.2010 01:50
Как получить позицию начала выделения? @LEXXX_NF Events/DOM/Window 3 28.08.2009 10:28