禁用TinyMCE自动清理

时间:2010-12-29 16:02:56

标签: php html tinymce smarty

我想使用tinymce编辑器来编辑智能模板。 问题是编辑器总是重新排列代码。 如果我将此代码输入HTML窗口:

<table border="0">
<tbody>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
{if empty($test)}
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
{/if}
</tbody>
</table>
单击确定按钮后,

变为此代码:

<p>{if empty($test)} {/if}</p>
<table border="0">
<tbody>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>

3 个答案:

答案 0 :(得分:2)

我从来没有写过,但我认为JavaScript驱动的HTML编辑器不能直接在HTML上工作。相反,他们可能在内存中构建DOM树。您不是在使用纯HTML而是使用Smarty代码。这意味着如果您将其作为HTML处理,您将始终丢失信息,因为它不是这样的。你给出的例子很好地说明了:没有办法将该字符串表示为HTML;如果你在浏览器中打开它,它看起来会破碎。

显而易见的事实是,可视化HTML编辑器旨在编辑HTML。仅Smarty模板类似于 HTML。

答案 1 :(得分:1)

所有文本都需要在html容器中 - 通常是p-tag。 这就是

的原因
{if empty($test)}

转换为

<p>{if empty($test)} {/if}</p>

。 您可以选择将此代码包装在您选择的标记内,但它必须位于元素内部!

答案 2 :(得分:0)

改为使用html评论:

<table border="0">
<tbody>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<!-- {if empty($test)} -->
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<!-- {/if} -->
</tbody>
</table>