可能还有另一种方式。看看这个例子。http://tinymce.moxiecode.com/examples/example_23.php
您可以将底部的链接(显示、隐藏、粗体、获取内容等)用作菜单(可能需要一些样式)。然后,获取当前焦点所在的 textarea 的 id 并将其传递给菜单 (#current) 并使用它来更改该 textarea。
为了实现您所描述的:
- 首先禁用所有单独的 TinyMCE 菜单项。
- 一旦它们被禁用,在 HTML 中创建您自己的 TinyMCE 菜单并设置相应的样式。
- 确定焦点所在的 TinyMCE 文本区域
- 将新菜单中的操作应用于焦点所在的 Textarea
现在一些代码(可能需要一些调试......)
首先,初始化 TinyMCE 并禁用菜单。
tinyMCE configs
({
mode : "textareas",
theme : "advanced",
editor_selector : "editable"
theme_advanced_buttons1 : "",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "botton",
theme_advanced_statusbar_location : "bottom" });
我想你也可以在 tiny_mce/themes/advanced/editor_template_src.js 中编辑 _addToolbars 函数,然后打包。
然后使用 jQuery 绑定确定当前焦点所在的文本区域:
$().ready(function() {
var current;
$('.editable').focus(
current = this.id;
);
$('.editable').blur(
//maybe hide the menu (?)
);
}
然后使用我们的 textareas 和菜单创建 HTML
<form method="post" action="somepage">
<div id="independent_menu">
<!-- The Menu, Please Style Accordingly -->
<a href="javascript:;" onmousedown="$('#current').tinymce().show();">[Show]</a>
<a href="javascript:;" onmousedown="$('#current').tinymce().hide();">[Hide]</a>
<a href="javascript:;" onmousedown="$('#current').tinymce().execCommand('Bold');">[Bold]</a>
<a href="javascript:;" onmousedown="alert($('#current').html());">[Get contents]</a>
<a href="javascript:;" onmousedown="alert($('#current').tinymce().selection.getContent());">[Get selected HTML]</a>
<a href="javascript:;" onmousedown="alert($('#current').tinymce().selection.getContent({format : 'text'}));">[Get selected text]</a>
<a href="javascript:;" onmousedown="alert($('#current').tinymce().selection.getNode().nodeName);">[Get selected element]</a>
<a href="javascript:;" onmousedown="$('#current').tinymce().execCommand('mceInsertContent',false,'<b>Hello world!!</b>');">[Insert HTML]</a>
<a href="javascript:;" onmousedown="$('#current').tinymce().execCommand('mceReplaceContent',false,'<b>{$selection}</b>');">[Replace selection]</a>
</div>
<!-- The Text Areas -->
<textarea class="editable" id="one">Some Text Here</textarea>
<textarea class="editable" id="two">Yet another text area</textarea>
<textarea class="editable" id="three">Final Text Area</textarea>