下划线格式问题

发布于 2024-10-20 13:30:35 字数 1145 浏览 4 评论 0原文

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

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

我将“这是文本”插入编辑器并按下划线按钮。 这是结果(这也保存到数据库):

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

为什么我没有得到 u 标签,而是带有下划线样式的预定义范围? 我如何在这里获得我可爱的 ​​u 标签?

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

编辑2:我的解决方案感谢接受的答案:

我能够使用legacyoutput插件中的一些代码。我使用了 inline_styles 设置

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

According to the documentation i would like to overwrite predefined formats using this settings:

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

I insert "this is a text" into the editor and press the underline-button.
This is the result (this gets saved to database too):

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

Why do i get no u-tags, but the predefined span with underlined style?
How do i get my lovely u-tags here?

EDIT: I do know that u-tags are deprecated, but i need them for compatibility reasons!

EDIT2: My solution thanks to the accepted answer:

I was able to use some code from the legacyoutput plugin. I used the inline_styles setting

inline_styles: false,

additionally ia dded the following code into one of my plugins 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);
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

寄离 2024-10-27 13:30:35

这里真正的答案是:

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


我不知道这是否正确,我只是重申我的在此处找到

首先,我们警告您:

已弃用。


然后:

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


或者:

这样就可以了:

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

...

祝你好运!

The real answer here turned out to be:

http://tinymce.moxiecode.com/wiki.php/Plugin:legacyoutput
(see comments)


I don't know whether this is correct, I'm just reiterating what I found here:

Firstly, you're warned that:

<u> is deprecated.

Then:

Disable inline_styles option.
Inline styles converts most attributes into CSS style attributes - so it will use span tags rather than <u>, <strike>, etc. So, disabling this option (which is now enabled by default) gives the behaviour you're looking for.

Alternatively:

This will do it:

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

...

Good luck!

花心好男孩 2024-10-27 13:30:35

谢谢,我还需要 SSRS 2008 报告的 标签,该标签不支持新的 标签。

这种组合对我有用:

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

Thanks for this, I also need the <u> tags for SSRS 2008 reports which do not support the new <span style="text-decoration: underline;"> tag.

This combination worked for me:

inline_styles: false,
formats: {
    underline: { inline: 'u', exact : true }
}
暗喜 2024-10-27 13:30:35

在这里工作吗?

http://jsfiddle.net/dFY6r/

另外 u 标签已被弃用,与 bi 这就是我们现在使用 CSS 的原因:

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

Works here?

http://jsfiddle.net/dFY6r/

Also u tags are deprecated, along with b and i that is why we use CSS now:

.className {
    text-decoration: underline;
    font-weight: bold;
    font-style: italic;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文