【问题标题】:Orchard text editor cannot save my htmlOrchard 文本编辑器无法保存我的 html
【发布时间】:2012-10-19 08:06:06
【问题描述】:

我正在使用 orchard CMS 构建网站,我通过 orchard 的文本编辑器添加了一个页面。 我输入以下代码并保存:

<a class="tile wide imagetext bg-color-blue" href="./bootstrap-scaffolding.html">
     <div class="image-wrapper">
          <img src="content/img/My Apps.png" />
      </div>
      <div class="column-text">
      <div class="text">Grid system</div>
          <div class="text">Layouts</div>
          <div class="text">Responsive design</div>
       </div>
     <span class="app-label">SCAFFOLDING</span>
</a>

但我发现再次打开编辑器时,文本编辑器中的代码发生了变化,它们是:

<h2>Bootstrap Metro</h2>
<div class="image-wrapper"><img src="content/img/My Apps.png" /></div>
<div class="column-text">
<div class="text">Grid system</div>
<div class="text">Layouts</div>
<div class="text">Responsive design</div></div>
<a class="tile wide imagetext bg-color-blue" href="./bootstrap-scaffolding.html"><span class="app-label">SCAFFOLDING</span> </a>

修改后的代码是:

<a class="tile wide imagetext bg-color-blue" href="./bootstrap-scaffolding.html"><span class="app-label">SCAFFOLDING</span> </a>

你能给我一些建议吗?

【问题讨论】:

    标签: c# model-view-controller content-management-system tinymce orchardcms


    【解决方案1】:

    我通过更改 TinyMCE 选项(在 orchard-tinymce.js 中,但您可以尝试使用 TinyMceDeluxe,它有一些配置选项的替代方法)。

    , forced_root_block: false
    , preformatted: true
    , schema: 'html5'
    , valid_children: '+a[div],+a[span]'
    

    我很确定是“valid_children”设置解决了这个问题,但它前面的其他设置是我首先尝试的,当我尝试使用 valid_children 时,我将它们放在配置中。您可以尝试删除其他选项并仅使用 valid_children 来查看它是否有效。

    还有一个 doctype 选项可能会起作用;它控制 TinyMCE 创建的 iframe 的文档类型。在 HTML5 中,&lt;div&gt; 元素是 a 标签的有效子元素,因此如果 tinyMCE 代码正确应用了 doctype 或 schema 规则,我们就不必设置 valid_children。 (这就是为什么我在上面尝试了schema: 'html5',但这似乎不起作用)

    【讨论】:

    • 是否值得为此提交错误?
    • 注意,之前的评论很复杂。我的意思是:只有至少设置了以下选项时它才有效:forced_root_block:false, preformatted:true, valid_children: '+a[div],+a[span]'schema:'html5' 部分可能需要也可能不需要,没有它我没有测试。
    • @Bertrand:这取决于。如果可以假设在 Orchard 中使用 TinyMce 的任何人都可以将他们的 TinyMce 设置为使用 html5,那么是的,我们应该提交一个错误。我对所有 Orchard 用户的决定的后果知之甚少,但我倾向于为 TinyMceDeluxe 做这件事,并且已经修改了该模块中的默认选项(尚未在画廊中发布,但将在下一个释放)。
    • 如果您决定提交错误,我将提交补丁,或者有人可以从 TinyMceDeluxe 存储库中提取代码。
    • FWIW 我只需要 v1.8 的 valid_children 设置
    【解决方案2】:

    可能是 TinyMCE 更改了 HTML 以匹配一些 TinyMCE 规则。您可以禁用 TinyMCE 模块,该模块将为您提供一个纯文本区域,您可以在其中输入不会更改的 HTML。

    TinyMCE deluxe module 可以让您选择更改此行为。

    【讨论】:

    • 肯定是 TinyMCE 正在修改 HTML。您可以查看此处的文档,看看是否有可以更改的设置来阻止这种情况发生。先看一些地方:架构 (html4/html5)、文档类型或允许的父/子元素设置。
    猜你喜欢
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多