下划线格式问题

时间:2011-03-07 12:39:11

标签: html editor format tinymce rte

根据documentation我想使用此设置覆盖预定义格式:

formats: {
        bold : {inline : 'b' },  
        italic : {inline : 'i' },
        underline: { inline: 'u' }
    },

我在编辑器中插入“this is a text”并按下划线按钮。 这是结果(这也会保存到数据库中):

<p>thi<span style="text-decoration: underline;">s is a t</span>ext</p>

为什么我没有获得u-tag,但带有下划线样式的预定义跨度? 我如何在这里获得可爱的u标签?

编辑: 我知道u-tag已被弃用,但出于兼容性原因我需要它们!

EDIT2:我的解决方案归功于已接受的答案:

我能够使用legacyoutput插件中的一些代码。我使用了i nline_styles setting

inline_styles: false,

另外我将以下代码添加到我的插件onInit

serializer = ed.serializer;

// Force parsing of the serializer rules
serializer._setup();

// Check that deprecated elements are allowed if not add them
tinymce.each('b,i,u'.split(','), function(name) {
  var rule = serializer.rules[name];

  if (!rule) serializer.addRules(name);
});

3 个答案:

答案 0 :(得分:14)

这里真正的答案是:

http://tinymce.moxiecode.com/wiki.php/Plugin:legacyoutput
(见评论)


我不知道这是否正确,我只是重申我found here

首先,你被警告:

  

<u>已被弃用。

然后:

  

禁用inline_styles选项。
  内联样式将大多数属性转换为CSS样式属性 - 因此它将使用span标签而不是<u><strike>等。因此,禁用此选项(现在默认启用)会给出您的行为寻找。

可替换地:

  

这样做:

tinyMCE.init({
    ...
    formats : {
        underline : {inline : 'u', exact : true}
        }

...
祝你好运!

答案 1 :(得分:8)

由于这一点,我还需要SSRS 2008报告的<u>标记,这些标记不支持新的<span style="text-decoration: underline;">标记。

这种组合对我有用:

inline_styles: false,
formats: {
    underline: { inline: 'u', exact : true }
}

答案 2 :(得分:0)

在这里工作?

http://jsfiddle.net/dFY6r/

此外,不推荐使用u代码,以及bi,这就是我们现在使用CSS的原因:

.className {
    text-decoration: underline;
    font-weight: bold;
    font-style: italic;
}