tinymce - 当我的 TinyMCE 插件在编辑框中插入标签时,输入的文本会出现在该标签内而不是外部。我该如何避免这种情况?
问题描述
我在这里使用插件来提及 TinyMCE,所以当我键入 @ 时,它会显示 JSON 结果,我可以从列表中进行选择。
https://github.com/StevenDevooght/tinyMCE-提及
我添加了这段代码,它在<span>
html 标记中返回选定的值和名称:
insert: function(item) {
return '<span class="mention" id="' + item.sequence + '">@' + item.name + '</span>';
},
问题是,它按预期插入了选定的值,但是当我继续在 textarea 中输入时,它仍保留在<span>
标记的值内。
选择项目后,我想继续在标签之外输入。
解决方案
这不完全是一个修复,更多的是一个愚蠢的解决方法:
insert: function(item) {
return ('<span class="mention" id="' + item.sequence + '">@'
+ item.name + '</span>‌');
},
这将在元素之后插入一个 U+200C ZERO WIDTH NON-JOINER 代码点<span>
,这将强制插入符号出现在元素之外。任何“虚拟”角色都可以;由于我认为是类似的原因,原始库做了类似的事情(与)。
事实上,
甚至可能会更好,因为至少它对用户是可见的,所以当他们点击 时,他们不会对一个不可见的字符被删除感到惊讶Backspace。
推荐阅读
- sql - 基于过滤条件的 T-SQL 查询列
- c# - 如何获取令牌以使用 ONVIF 库切换摄像机的继电器?
- python - 将六位数的数字列拆分为一个数字的分隔列
- javascript - 如何获取包含特定子元素的元素的索引
- docker - 无法下载 Docker 映像 - 没有这样的主机
- oracle-adf - 如何在视图条件之外的 selectManyChoice LOV 中允许选择然后取消选择
- java - 如何使用正则表达式仅捕获具有特定格式的有效句子的第一个单词?
- flutter - 我怎样才能制作这样的个人资料页面..?
- hive - 执行两个 tHiveRow 组件后,第一个组件仍在写入数据,而第二个组件已开始移动导致问题的数据
- java - 在我单击 SearchView 之前,ListView 不会显示