2011-02-10 104 views
1

我有一个TinyMCE编辑器,其默认工具栏隐藏,并创建了我自己的替换它(用office2007风格的CSS预览简化)。TinyMCE自定义链接按钮/命令(使用jQuery)

我遇到了通过代码创建链接的问题(我使用cms生成的页面列表加载我自己的jQuery UI窗口,这会向我的代码返回一个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

你有没有考虑过使用_mceInsertLink_命令,将链接添加到目前的选择? – 2011-02-11 04:51:24

回答

1

你可以得到所选择的内容把它包装成一个标签,并把它写回编辑:

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) 
+0

完美的作品,谢谢! – Josh 2011-02-11 12:03:36