Получить текущий элемент выделения
Добрый день.
Прошу подсказать как получить текущий элемент выделения используя 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>[ </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; } |
спасибо разобрался, пришлось посмотреть DOM-модель в которой нет никакого getSelectedElement().
можно использовать document.getSelection().baseNode.parentNode.tagNam e.toString() |
Часовой пояс GMT +3, время: 09:00. |