You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TinyMCE编辑器自动补全:取消@触发,实现首字母触发

解决TinyMCE Autocompleter输入首字母触发自动补全的问题

要实现输入首字母即显示自动建议,只需调整Autocompleter的配置逻辑,核心是移除触发字符限制并设置最小触发字符数:

  1. 移除触发字符配置:删除原配置中的trigger: '@'字段,不再指定特定触发字符,让组件监听所有输入内容。
  2. 设置最小触发字符数:添加minChars: 1,确保用户输入第一个字符时就触发匹配逻辑。
  3. 调整匹配逻辑:在fetch方法中,基于用户输入的完整内容(即首字母及后续字符)筛选候选建议。

示例代码如下:

tinymce.init({
  // 编辑器基础配置
  plugins: 'autocomplete',
  setup: function(editor) {
    editor.ui.registry.addAutocompleter('custom-autocompleter', {
      // 移除trigger字段,取消特定字符触发限制
      minChars: 1, // 输入1个字符即触发补全
      fetch: function(searchPattern) {
        // 示例候选列表,可替换为业务数据源
        const candidateList = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry'];
        return new Promise(resolve => {
          // 基于输入内容的首字母(忽略大小写)筛选匹配项
          const matchedItems = candidateList.filter(item => 
            item.toLowerCase().startsWith(searchPattern.toLowerCase())
          );
          // 转换为Autocompleter可识别的格式
          resolve(matchedItems.map(item => ({
            type: 'autocompleteitem',
            text: item,
            value: item
          })));
        });
      },
      onAction: function(api, range, value) {
        // 插入选中的补全内容
        editor.insertContent(value);
        api.hide();
      }
    });
  }
});

关键说明

  • 移除trigger后,Autocompleter会实时响应编辑器的输入事件,不再依赖特定字符触发。
  • minChars: 1控制触发补全的最小输入长度,确保首字母输入后立即显示建议。
  • fetch方法中的searchPattern参数即为用户当前输入的内容,通过startsWith实现首字母匹配逻辑,可根据业务需求调整匹配规则(如包含匹配等)。

内容的提问来源于stack exchange,提问作者Evanto Hosts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:05:14