我正在使用umbraco 4.7。我创建了一个剃刀宏来在我的富文本编辑器中插入电话号码。每当我在RTE中添加宏时,都会自动在宏周围添加<p>
标记。我尝试通过编辑html删除额外的<p>
代码,但是一旦点击“保存”,就会再次添加<p>
代码。我尝试安装此package
但它没有解决我的问题。我已经尝试设置<TidyEditorContent>False</TidyEditorContent>
并检查forced_root_block:'p'但这些都不能解决问题。
有什么指针可以解决这个问题吗?
答案 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| /g, '').length == 0)
$this.remove();
});