我想使用tinymce编辑器来编辑智能模板。 问题是编辑器总是重新排列代码。 如果我将此代码输入HTML窗口:
<table border="0">
<tbody>
<tr>
<td> </td>
<td> </td>
</tr>
{if empty($test)}
<tr>
<td> </td>
<td> </td>
</tr>
{/if}
</tbody>
</table>
单击确定按钮后,变为此代码:
<p>{if empty($test)} {/if}</p>
<table border="0">
<tbody>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
答案 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> </td>
<td> </td>
</tr>
<!-- {if empty($test)} -->
<tr>
<td> </td>
<td> </td>
</tr>
<!-- {/if} -->
</tbody>
</table>