<p>标记已添加到内联宏</p>

时间:2011-06-07 15:14:00

标签: razor tinymce umbraco

我正在使用umbraco 4.7。我创建了一个剃刀宏来在我的富文本编辑器中插入电话号码。每当我在RTE中添加宏时,都会自动在宏周围添加<p>标记。我尝试通过编辑html删除额外的<p>代码,但是一旦点击“保存”,就会再次添加<p>代码。我尝试安装此package

但它没有解决我的问题。我已经尝试设置<TidyEditorContent>False</TidyEditorContent>并检查forced_root_block:'p'但这些都不能解决问题。

有什么指针可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

这是一个常见问题,RTE会导致许多令人头疼的问题,无法保持网页的完整性。整个“我们应该包括段落标签吗?”问题是一个困难的问题,因为只插入一段文字就可以删除它们,但是如果内容编辑器决定添加更多内容,并且你正在剥离第一个和最后一个P标记怎么办?

请记住,网站的CSS总是需要支持您选择的任何内容,最好的选择是编辑配置文件以使TinyMCE省略P标记。为此,您需要编辑/config/tinyMceConfig.config文件。这底部有两个有趣的部分。包含允许的HTML标记,当然包含相反的内容。

如果查看逗号分隔值的有效元素列表,您应该看到值 #p [id | style | dir | class | align] 。注意完全如何格式化,您应该能够将其移动到无效元素部分。将它放在默认的字体标记之后,当然在它前面加一个逗号。

重新启动IIS并尝试在RTE中输入您的内容。发布时,然后查看输出,您应该看到RTE中的字符串已删除段落标记。

最后一个选项是从输出中删除段落标记。有很多新方法可以做到这一点,但对于你的Razor版本,我会使用类似的东西:

@Html.Raw(umbraco.library.RemoveFirstParagraphTag(value.ToString()))

another StackOverflow article中涵盖了这个想法。

祝你好运,如果你有任何成功,请告诉我们。

答案 1 :(得分:0)

使用这个jquery .....

$('p').each(function() {
    var $this = $(this);
    if($this.html().replace(/\s|&nbsp;/g, '').length == 0)
        $this.remove();
});