Показать сообщение отдельно
  #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;

				}
Ответить с цитированием