javascript - 如何在CodeMirror编辑器中添加<span>?

标签 javascript codemirror

请不要使用 jQuery!

我想在 CodeMirror 编辑器的主体中添加样式化的跨度。这是为了邮件合并之类的应用程序,您可以在其中执行以下操作:(来自 Zapier) example

我相信使用 CodeMirror Widget 这可能是可能的,但我不知道该往哪个方向走。我找到了一个类似的示例(尽管要复杂得多)here .

我也尝试过tagify这与我所追求的非常相似,但没有多行输入,这是一个要求。

我所需要的只是能够添加和删除(通过退格键和标签后面的插入符号)这些跨度,但似乎没有一个简单的解决方案。

此外,如果有一个方便的库或其他一些方向,我可以不涉及 CodeMirror,那也可以。

最佳答案

CodeMirror 实际上非常适合于此。

首先在文档中插入一些占位符,例如[[tag]]。

var lineNumber = 0;
var charNumber = 0;
var snippet = "[[tag]]"
editor.doc.replaceRange(snippet, {line:lineNumber, from: charNumber});

然后创建您的 DOM 元素,我建议使用跨度。

var htmlNode = document.createElement("span");
//Style and add what you like to the span

然后使用doc.markText将其替换为该节点。

editor.doc.markText({line: lineNumber,ch: charNumber}, {line: lineNumber,ch: charNumber + snippet.length}, {
   replacedWith: htmlNode
})

关于javascript - 如何在CodeMirror编辑器中添加<span>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57872748/

相关文章:

javascript - 查找 - 尚未被 A 标签包围 - 并被 A 标签包围的事件

javascript - 如何使Flash影片与div宽度成比例缩放?

javascript - Axios 以错误的顺序进行 DELETE 和 GET

javascript - 谷歌图表 interpolateNulls 不工作

javascript - 将整个 HTML 页面存储到 jQuery 变量中

javascript - Fusion Chart 为您带来了什么 D3 没有的东西?

javascript - 使用代码镜像时在警报中显示文本区域内容

javascript - 代码镜像2 : How to format a pasted content?

javascript - CodeMirror OnSelect 事件不起作用

autocomplete - 如何为 CodeMirror 编辑器应用自动缩进?