Javascript 无法在QuillJS编辑器中使用自定义下拉列表

Javascript 无法在QuillJS编辑器中使用自定义下拉列表,javascript,rich-text-editor,quill,Javascript,Rich Text Editor,Quill,描述:在羽毛笔编辑器工具栏中创建下拉列表时遇到问题。任何帮助都将不胜感激。理想情况下,我希望下拉列表显示在工具栏中,并将选择选项文本作为文本添加到编辑器中 测试用例: HTML 谢谢,我不得不添加一些CSS来在工具栏上显示它,添加一些JS来将它插入文本编辑器 CSS JS 我必须添加一些CSS以在工具栏上显示它,添加一些JS以将其插入文本编辑器 CSS JS 我也有这个问题。不幸的是,Quill中有一个硬代码。只有默认的工具栏选项才有CSS规则来显示选项的文本 .ql-snow .ql-pick

描述:在羽毛笔编辑器工具栏中创建下拉列表时遇到问题。任何帮助都将不胜感激。理想情况下,我希望下拉列表显示在工具栏中,并将选择选项文本作为文本添加到编辑器中

测试用例:

HTML


谢谢,

我不得不添加一些CSS来在工具栏上显示它,添加一些JS来将它插入文本编辑器

CSS

JS


我必须添加一些CSS以在工具栏上显示它,添加一些JS以将其插入文本编辑器

CSS

JS


我也有这个问题。不幸的是,Quill中有一个硬代码。只有默认的工具栏选项才有CSS规则来显示
选项的文本

.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
  content: attr(data-label);
}

但是最好的方法是添加这个
内容:attr(数据标签)
用于所有自定义选择,因为在我的例子中,
数据标签设置正确,并且它可以从CSS
attr(数据标签)
访问,我也有这个问题。不幸的是,Quill中有一个硬代码。只有默认的工具栏选项才有CSS规则来显示
选项的文本

.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
  content: attr(data-label);
}

但是最好的方法是添加这个
内容:attr(数据标签)
用于所有自定义选择,因为在我的例子中,
数据标签
设置正确,它可以从CSS
attr(数据标签)

访问。感谢您的帮助,它帮助您解决了很多问题!谢谢你,它帮了我很多忙!
.ql-picker.ql-emailVars {
  width: 120px;
}

.ql-picker.ql-emailVars .ql-picker-item::before, 
.ql-picker.ql-emailVars .ql-picker-label::before {
  content: 'Custom'
}

.ql-picker.ql-emailVars [data-value="1"]::before {
  content: 'Account Url'
}

.ql-picker.ql-emailVars [data-value="2"]::before {
  content: 'First Name'
}

.ql-picker.ql-emailVars [data-value="3"]::before {
  content: 'Login'
}

.ql-picker.ql-emailVars [data-value="4"]::before {
  content: 'Org Name'
}

.ql-picker.ql-emailVars [data-value="5"]::before {
  content: 'Support Email'
}
const quill = new Quill('#editor', {
  modules: {
    toolbar: {
      container: "#editor-toolbar",
      handlers: {
        "emailVars": emailVars
      }
    }
  },
  theme: 'snow'
});

// Add Custom Dropdown to Toolbar
function emailVars(args) {
  const value = args[0]
  const cursorPosition = this.quill.getSelection().index
  if (value == 1) {
    this.quill.insertText(cursorPosition, "{AccountURL}")
  } else if (value == 2) {
    this.quill.insertText(cursorPosition, "{FirstName}")
  } else if (value == 3) {
    this.quill.insertText(cursorPosition, "{Login}")
  } else if (value == 4) {
    this.quill.insertText(cursorPosition, "{OrganizationName}")
  } else if (value == 5) {
    this.quill.insertText(cursorPosition, "{SupportEmail}")
  } else {
    this.quill.insertText(cursorPosition, "Please add an email variable.")
  }

  this.quill.setSelection(cursorPosition + value.length)
}
.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
  content: attr(data-label);
}