2011-02-24 135 views
1

说我想在初始化编辑器时默认选择'bold'选项。我会怎么做?默认情况下是否有任何方式选择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())); 
     } 
    }); 
} 

即使用户在选择中的选择选项之间跳转,此功能也很适用。

编辑2:这似乎工作,如果你确实需要<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>'); 
     } 
    }); 
} 

回答

0

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

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

请更新您对您的使用案例的问题编辑器。

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

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

它可以是空的,它可以初始化内容。我正在使用类似于你现在建议的内容,除非标签是空的,因为它没有为我工作。我一直在中间使用零宽度空间(8203),但会导致其他问题,这就是为什么我不想使用这种方法。另外,通过这种方法,工具栏中的选项没有被使用,这实际上应该是可能的。我真的想在编辑器初始化后的某个时刻触发选项,就好像用户点击了该选项一样。 – chris 2011-02-25 08:31:48

+0

你是正确的,你做了正确的事情插入空格字符。我编辑了我的文章,提出的解决方案应该以优雅的方式解决您的问题。 – Thariama 2011-02-25 08:50:00

+1

是的,我把它放在设置。这非常出色。非常感谢! – chris 2011-02-25 08:56:02

1

而不是当用户输入它这样做,为什么不输出将数据输出到tinyMCE之外的用户时,是否使用粗体标记中的值?这样,用户无法像覆盖标签一样覆盖该选项。另外,如果您在用户首先在Microsoft Word中生成代码的环境中使用TinyMCE作为wysiwg网页编辑器,则在通过粘贴获取“垃圾”字代码时会遇到重大问题。 Tiny的解决方案是一个“粘贴词”按钮,用户似乎经常忽略 - 我已经在50多个商业网站中部署了Tiny,这对于大多数使用这些站点的客户来说是一个主要问题。我转到了CKEditor,它在FRONT端做了代码剥离,并且一切都很好。人们有他们的偏好,我甚至喜欢使用微小更多。但是Word Code问题对我来说已经成为一个破坏者,我不会再安装Tiny了。

+0

我使用预处理选项解决了粘贴问题,并自己过滤了粘贴的内容(但在可能之前需要解决一些问题) – Thariama 2011-02-25 08:36:08

+1

用户可以自由地不用粗体但是我希望编辑默认为该设置。因为它是所见即所得,如果这是你所建议的,那么在编辑器中显示更改是很奇怪的。哦,当谈到TinyMCE并从单词粘贴到合唱团时。很多正则表达式都被用来处理这个问题,即使是插件也是如此。 – chris 2011-02-25 08:37:25

+0

+1解决方案是一种可能的方法 – Thariama 2011-02-25 08:59:19

相关问题