TinyMCE自定义链接按钮/命令(使用jQuery)

时间:2011-02-10 22:18:02

标签: jquery tinymce selection textselection execcommand

我有一个隐藏默认工具栏的TinyMCE编辑器,并创建了我自己的替换它(简化了office2007样式的css预览)。

我遇到通过代码创建链接的问题(我加载自己的jQuery UI窗口,其中包含由cms生成的页面列表,这会返回我的代码的URL)。

我的表现如下:

将以下内容添加到TinyMCE设置配置:

execcommand_callback : 'NEWCMS.editor.util.override'

因此,在执行默认行为之前,所执行的任何命令都会通过该函数运行。

在该功能中,我检查它是否是'mceLink'事件(让我的自定义工具栏正确发送命令,因此不是问题)。当我拿到一个时,我会显示一个窗口,返回用户选择的网址。 现在我有一个问题。

我使用

获取所选节点
var inst = $('#jbcms_editor_textarea').tinymce();
var selectedNode = inst.selection.getNode();

但它正如预期的那样返回段落的节点。

我需要做的是将选择包装在<a>标记中,以便我可以使用该<a>节点,但无法找到如何执行此操作。我已经通过了API,却无法找到我正在寻找的东西。但必须有一些东西,因为TinyMCE必须在内部使用它。 (我也尝试过查看TinyMCE源码,但它超出了我的范围!)

有人有任何想法吗?

由于

1 个答案:

答案 0 :(得分:1)

您可以将选定的内容包装成a-tag并将其写回编辑器:

var inst = $('#jbcms_editor_textarea').tinymce();
var content = inst.selection.getContent();
inst.execCommand('insertHTML',false, '<a>'+content+'</a>'); #you may add attributes here too (like href)