Как получить HREF выбранного текста привязки в TinyMCE?

У меня есть доступ к выбранному тексту в TinyMCE через

var selection = parent.tinyMCE.activeEditor.selection.getContent();

но КАК я имею доступ к href выбранного фрагмента текста, который уже был связан? Так что если текст был гиперссылкой на http://www.youtube.com, то после выбора я могу автоматически заполнить ссылку с помощью http://www.youtube.com... Поэтому я думаю, что я ищу что-то вроде:

var href = href-of-my-selected-tinymce-text

Просто для справки: я создаю настраиваемый плагин, который вызывает и внешний пользовательский диалог...

Огромное спасибо любому, кто может дать мне голову :)

1 ответ

Вам нужно проанализировать возвращаемую строку из вызова getContent() как HTML! Поскольку вы отметили свое сообщение с помощью jQuery, я предполагаю, что использование jQuery для этого желательно. С учетом сказанного, ваше решение извлекая href значение a элементе в пределах вашего выбора TincyMCE, выполните следующие действия:

// This value of var selectionFromTinyMCE is an example
// of what parent.tinyMCE.activeEditor.selection.getContent(); returns to you
var selectionFromTinyMCE = 'sit our <a href="../forum/index.php" target="_blank">community forum</a>! We also';

// Here we take the string returned by TinyMCE, wrap it with a span tag,
// and pass it into a jQuery. This forces jQuery to evaluate the string as HTML!
var $jStr = $("<span>"+selectionFromTinyMCE+"</span>");

// You then create new variable and store the value of the href attribute
// of the  element from within your string.
var hrefValueFromTinyMCEselection = $jStr.find("a").attr("href");

// Check the console to see the result below, outputted as a string
console.log( hrefValueFromTinyMCEselection );

Здесь приведенная выше версия кода JSFiddle, чтобы увидеть, как это происходит в прямом эфире (откройте консоль, чтобы увидеть результаты, зарегистрированные в журнале): http://jsfiddle.net/lasha/NF9V8/

licensed under cc by-sa 3.0 with attribution.