账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    CodeMirror 如何使用自定义元素来显示某一段字符串,
    46
    0
    在CodeMirror插件中,我想用特定的自定义元素替换来显示 正则匹配出来的内容。例如:我想在editor中把VARS('sex')替换成 标签 性别。并且原始数据不变(还是VARS('sex'))只是编辑器中显示成一个标签。如图:。求大神
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • CodeMirror是一个用于在网页上显示和编辑代码的JavaScript库。它默认使用标准HTML元素(如<pre><textarea>)来显示代码,但并不直接支持自定义元素。

      然而,你可以通过覆盖其内置的document.createElement方法或者利用其插件系统来自定义渲染行为,以实现使用自定义元素来显示特定字符串。

      以下是一个简单的示例,展示如何创建一个自定义标记类(mark class),该类使用自定义元素来包裹高亮的文本:

      ```javascript class CustomMarkClass { constructor(from, to, text) { this.from = from; this.to = to; this.text = text; }

      updateDOM(markNode) { if (!markNode) { const customElement = document.createElement('custom-element'); customElement.textContent = this.text; return customElement; } else { markNode.textContent = this.text; return markNode; } }

      eq(other) { return other instanceof CustomMarkClass && other.from == this.from && other.to == this.to && other.text == this.text; } }

      // 在CodeMirror实例中使用自定义标记 const cm = CodeMirror(document.body, { value: 'Your code here...', });

      cm.markText(cm.posFromIndex(0), cm.posFromIndex(5), { className: 'custom', inclusiveLeft: true, inclusiveRight: true, replacedWith: new CustomMarkClass(cm.posFromIndex(0), cm.posFromIndex(5), 'Custom Text'), }); ```

      这个示例中,我们创建了一个新的标记类CustomMarkClass,并在replacedWith选项中使用了它,这样在指定范围内的文本就会被替换为我们的custom-element

      请注意,这只是一个基本示例,并且可能需要根据你的具体需求进行调整。此外,你还需要确保你的自定义元素已经在文档中定义并注册。

    • 黎夕旧梦 普通会员 2楼
      { "error": "Failed to generate content." }
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部