有没有办法默认选择TinyMCE选项?

时间:2011-02-24 14:34:36

标签: javascript jquery tinymce

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

编辑:使用Thariama回答的解决方案如下。我发现让<p>标签留在那里,选择其他选项,比如不同的标题,并且因为我在这个特定的编辑器中不需要<p>标签,所以我这样做是为了获得默认情况下为<h1>

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()));
        }
    });
}

即使用户在选择中的选择选项之间跳转,这也很有效。

EDIT2:如果您确实需要<p>标记,这似乎有效。这默认为粗体

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>');
        }
    });
}

2 个答案:

答案 0 :(得分:1)

当用户输入数据时,为什么不在将数据输出到tinyMCE之外的用户时,为什么不在粗体标记内输出值?这样,如果你只是在里面有一个标签,用户就无法覆盖选项。

顺便说一句,如果您在用户首次在Microsoft Word中生成代码的环境中使用TinyMCE作为wysiwg Web编辑器,那么在via paste中获取“垃圾”字代码存在重大问题。 Tiny的解决方案是“从单词粘贴”按钮,用户似乎经常忽略 - 我已经在50多个商业网站中部署了Tiny,这对于大多数使用这些网站的客户来说都是一个主要问题。我切换到CKEditor,它在FRONT端进行了代码剥离,一切都很顺利。人们有他们的偏好,我甚至更喜欢使用Tiny。但是Word Code问题对我来说已成为一个破坏者,我不会再安装Tiny了。

答案 1 :(得分:0)

选择的程序取决于许多因素。如果您有一个空的tinymce编辑器,您可以使用以下内容初始化您的编辑器

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

请更新您的用例问题。

编辑:这可能对你有用。将此处理程序添加到您自己的插件之一。 它检查所有段落(如果你的tinymce使用div,你需要改变这段代码) 并将内部HTML包装成b标签(您可能希望使用强标签)。

    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>';
        }
    });

另一个选择是不使用自己的插件,而是在初始化tinymce时使用setup参数:

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>';
        }
    });
},