Javascript 有没有办法让TinyMCE选项默认选中?

Javascript 有没有办法让TinyMCE选项默认选中?,javascript,jquery,tinymce,Javascript,Jquery,Tinymce,假设我想在编辑器初始化时默认选择“粗体”选项。我该怎么做 编辑:处理Thariama回答的问题的解决方案如下。我发现将标记留在那里与选择其他选项(如不同的标题)结合在一起,并且由于我在这个特定编辑器中不需要标记,我这样做是为了在默认情况下获得: setup: function(ed) { ed.onInit.add(function(ed) { if ($('p', ed.getDoc()).length > 0) { $('p', ed.

假设我想在编辑器初始化时默认选择“粗体”选项。我该怎么做

编辑:处理Thariama回答的问题的解决方案如下。我发现将
标记留在那里与选择其他选项(如不同的标题)结合在一起,并且由于我在这个特定编辑器中不需要
标记,我这样做是为了在默认情况下获得

setup: function(ed) { 
    ed.onInit.add(function(ed) {
        if ($('p', ed.getDoc()).length > 0) {
            $('p', ed.getDoc()).remove();
            $('<h1><br mce_bogus="1" /></h1>').appendTo($('body', ed.getDoc()));
        }
    });
}
setup: function(ed) { 
    ed.onInit.add(function(ed) {
        if ($('p', ed.getDoc()).children().length == 1 && $('p', ed.getDoc()).children(':first').is('br')) {
            $('p', ed.getDoc()).html('<b><br mce_bogus="1" /></b>');
        }
    });
}
设置:函数(ed){
ed.onInit.add(功能(ed){
如果($('p',ed.getDoc()).length>0){
$('p',ed.getDoc()).remove();
$('
).appendTo($('body',ed.getDoc()); } }); }
即使用户在“选择”对话框中的选择选项之间跳跃,这也非常有效

EDIT2:如果您确实需要
标签,这似乎可以工作。默认情况下,这将使其变为粗体:

setup: function(ed) { 
    ed.onInit.add(function(ed) {
        if ($('p', ed.getDoc()).length > 0) {
            $('p', ed.getDoc()).remove();
            $('<h1><br mce_bogus="1" /></h1>').appendTo($('body', ed.getDoc()));
        }
    });
}
setup: function(ed) { 
    ed.onInit.add(function(ed) {
        if ($('p', ed.getDoc()).children().length == 1 && $('p', ed.getDoc()).children(':first').is('br')) {
            $('p', ed.getDoc()).html('<b><br mce_bogus="1" /></b>');
        }
    });
}
设置:函数(ed){
ed.onInit.add(功能(ed){
if($('p',ed.getDoc()).children().length==1&&$('p',ed.getDoc()).children(':first').is('br')){
$('p',ed.getDoc()).html('
); } }); }
选择程序取决于许多因素。如果您有一个空的tinymce编辑器,您可以使用以下内容初始化编辑器

<p><strong><strong></p>

请更新有关用例的问题

编辑:这可能更适合您。将此处理程序添加到您自己的插件中。 它检查所有段落(如果tinymce使用divs,则需要修改这段代码) 并将内部HTML包装成b标记(您可能希望使用强标记)

ed.onInit.add(函数(ed){
ps=ed.getDoc().getElementsByTagName('p');
对于(变量i=0;i
另一个选项是不使用自己的插件,而是在初始化tinymce时使用设置参数:

setup : function(ed) {

    ed.onInit.add(function(ed){
        ps = ed.getDoc().getElementsByTagName('p');
        for (var i=0; i < ps.length ; i++) {
            ps[i].innerHTML = '<b>'+ps[i].innerHTML+'</b>';
        }
    });
},
设置:功能(ed){
ed.onInit.add(功能(ed){
ps=ed.getDoc().getElementsByTagName('p');
对于(变量i=0;i
选择程序取决于许多因素。如果您有一个空的tinymce编辑器,您可以使用以下内容初始化编辑器

<p><strong><strong></p>

请更新有关用例的问题

编辑:这可能更适合您。将此处理程序添加到您自己的插件中。 它检查所有段落(如果tinymce使用divs,则需要修改这段代码) 并将内部HTML包装成b标记(您可能希望使用强标记)

ed.onInit.add(函数(ed){
ps=ed.getDoc().getElementsByTagName('p');
对于(变量i=0;i
另一个选项是不使用自己的插件,而是在初始化tinymce时使用设置参数:

setup : function(ed) {

    ed.onInit.add(function(ed){
        ps = ed.getDoc().getElementsByTagName('p');
        for (var i=0; i < ps.length ; i++) {
            ps[i].innerHTML = '<b>'+ps[i].innerHTML+'</b>';
        }
    });
},
设置:功能(ed){
ed.onInit.add(功能(ed){
ps=ed.getDoc().getElementsByTagName('p');
对于(变量i=0;i
当您将数据输出到tinyMCE之外的用户时,为什么不在粗体标记内输出值,而不是在用户输入数据时执行此操作?这样,用户就无法覆盖选项,因为如果您只是在其中添加了一个标记,用户就无法覆盖该选项


另一方面,如果您在用户首先使用Microsoft Word生成代码的环境中使用TinyMCE作为wysiwg web编辑器,则通过粘贴获取“垃圾”Word代码会出现重大问题。Tiny的解决方案是一个“从word粘贴”按钮,用户似乎经常忽略它——我在50多个商业网站中部署了Tiny,这是使用这些网站的大多数客户的一个主要问题。我转到了CKEditor,它在前端进行文字代码剥离,一切都很好。人们都有自己的偏好,我甚至喜欢使用Tiny more。但是文字代码问题已经成为我的一个障碍,我不会再安装Tiny了。

与其在用户输入时安装,不如在tinyMCE之外向用户输出数据时,在粗体标记内输出值?这样,用户就无法覆盖选项,因为如果您只是在其中添加了一个标记,用户就无法覆盖该选项


另一方面,如果您在用户首先使用Microsoft Word生成代码的环境中使用TinyMCE作为wysiwg web编辑器,则通过粘贴获取“垃圾”Word代码会出现重大问题。Tiny的解决方案是一个“从word粘贴”按钮,用户似乎经常忽略它——我在50多个商业网站中部署了Tiny,这是使用这些网站的大多数客户的一个主要问题。我转到了CKEditor,它在前端进行文字代码剥离,一切都很好。人们都有自己的偏好,我甚至喜欢使用Tiny more。但是文字代码问题已经成为我的一个破坏者,我不会再安装Tiny了。

它可能是空的,也可能是用内容初始化的。我使用的东西和你现在建议的一样,只是标签是空的,就像它对我不起作用一样。我已经在中间使用了一个零宽度空间(8203),但是这导致了其他问题,这就是为什么我不想使用这种方法。此外,使用这种方法时,工具栏中的选项不会被使用,这确实是可能的。我真的很想在编辑器初始化后的某个时刻触发选项,就像用户单击了该选项一样。你是对的,克里斯,插入空格字符是对的。我编辑了我的帖子,解决方案