javascript - CKEditor4 : Make Text Differ from its HTML

标签 javascript jquery html ckeditor

我添加 StrInsert插件到我的 CKEditor。它基本上添加了一个按钮,在我的编辑器中,它被标记为 CRM Field .

按钮的作用是将一个值附加到我的编辑器。例如:当我点击 $[FIRST_NAME]从下拉列表中,它将附加文本 ${__VCG__VAL__FIRST_NAME}给我的编辑。

为什么我将下拉菜单命名为 $[FIRST_NAME]而不是 ${__VCG__VAL__FIRST_NAME} ?因为我想要 HTML成为<p>${__VCG__VAL__FIRST_NAME}</p>text显示在编辑器中的是$[FIRST_NAME] (**Please see** [screenshot_2][2] **to better understand the problem**)

screenshot_2 所示, HTML下面显示的正是我想要的,而不是显示文本 ${__VCG__VAL__FIRST_NAME}我希望编辑器显示文本 $[FIRST_NAME]

我的问题是,如何制作 HTML不同于 text在编辑器中显示某些保留关键字?

最佳答案

有解决方法吗?如果您可以对数据进行后处理和预处理,那么解决方案就很简单。通过将 ${__VCG__VAL__FIRST_NAME} 替换为 $[FIRST_NAME] 来预处理传入的数据,并在保存之前执行相反的操作。

对于具有更复杂替换但具有更好用户体验的更高级方法,我会使用带有如下代码的小部件:

<p data-real="${__VCG__VAL__FIRST_NAME}">$[FIRST_NAME]</p>

您将创建一个插件,将每个具有 data-real 属性的 P 定义为小部件。然后在保存之前将它们转换为您喜欢的简单 P,并在加载时将简单 P 转换回小部件。这样做的好处是用户不会意外地编辑文本并且拖放很容易。例如,使用 jquery 进行替换应该非常容易。

虽然我不知道您为什么希望它们是 block 级的,但我想像这样的变量会更好地内联 - 但这取决于您的要求。

小部件文档位于 http://docs.ckeditor.com/#!/guide/dev_widgets

关于javascript - CKEditor4 : Make Text Differ from its HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26306394/

相关文章:

jquery - 在元素列表中查找元素的兄弟元素

HTML & CSS : ">" Greater than selector styles not applied

javascript - 为什么我的 .innerHTML 不能在 sublime text 3 中工作?

javascript - 函数内的函数?

javascript - 我怎样才能使这个 javascript 更易于阅读、维护和从 OO 背景理解?

javascript - ui-router 中 ui-sref 属性的动态更改

javascript - 用于 Flexbox 的 Object.assign 和动态 css 样式 - 特定于 codepen

jquery - VideoJS 5 视频播放器更改音量和进度条的命中框

javascript - 以编程方式滑回上一页

html - 如何使用 vue.js 获取本地 html 文件?