如何在TinyMCE中获取所选锚文本的HREF?

时间:2014-01-07 20:59:39

标签: javascript jquery tinymce tinymce-4

我可以通过

访问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 个答案:

答案 0 :(得分:1)

您需要做的是将getContent()调用的返回字符串解析为HTML!当您使用jQuery标记帖子时,我认为使用jQuery是可取的。如上所述,您在TincyMCE选择中检索href元素的a值的解决方案,请执行以下操作:

// 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">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 <a> 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/