Javascript 将自定义按钮添加到纬管';s工具栏(并将其集成到PrimeFaces文本编辑器上)?

Javascript 将自定义按钮添加到纬管';s工具栏(并将其集成到PrimeFaces文本编辑器上)?,javascript,primefaces,quill,Javascript,Primefaces,Quill,我正在使用PrimeFaces 7及其TextEditor组件,该组件在内部使用免费的开源编辑器Quill 我需要添加一个自定义HTML按钮,当选中该按钮时,将在TextEditor中光标的当前位置插入选中的单词-(在羽毛笔中) 可以在Quill编辑器中添加自定义按钮,并将EventListeners附加到它们,如下所示: (请看上页的这一部分): var customButton=document.querySelector(“#自定义按钮”); customButton.addEventL

我正在使用PrimeFaces 7及其TextEditor组件,该组件在内部使用免费的开源编辑器Quill

我需要添加一个自定义HTML按钮,当选中该按钮时,将在TextEditor中光标的当前位置插入选中的单词-(在羽毛笔中)

可以在Quill编辑器中添加自定义按钮,并将EventListeners附加到它们,如下所示:

(请看上页的这一部分):

var customButton=document.querySelector(“#自定义按钮”);
customButton.addEventListener('单击',函数()){
console.log('Clicked!');
});

羽毛笔编辑器还提供了一个API,用于在给定位置插入文本,请参见此处:

看看这个方法:

`quill.insertText(0, 'Hello', 'bold', true);`
然而,我确实错过了几件事:

1.)自定义按钮的定义应在工具栏div中完成,如以下代码所述:

`<div id="toolbar">
   <!-- But you can also add your own -->
  <button id="custom-button"></button>`
可以这样说:

1.1)自定义按钮被插入到羽毛笔工具栏上(虽然不美观,也没有样式,但它确实存在)

1.2)单击自定义按钮时,首先执行EventListener。这没关系,但这里:

Quill.insertText(0,'Hello','bold',true)

我需要的不是Quill.insertText(),而是对表示Quill编辑器的js对象的引用。=>你能帮忙吗

1.3)在执行点(1.2)中的EventListener之后,我的整个代码

 jQuery(document).ready(function () {
    jQuery(document).ready(function () {
再次执行,找不到customButton的id,并再次重新创建它。=>我可以避免吗

2.)在特定位置插入文本的代码中,我需要在用户单击(选择)自定义按钮之前获取光标的最后位置


我怎么能做到这一点呢?

我从没听说过PrimeFaces,但也许我可以回答你的这部分问题:

Quill.insertText(0,'Hello','bold',true)

我需要的不是Quill.insertText(),而是对表示Quill编辑器的js对象的引用。=>你能帮忙吗

根据它应该是

PrimeFaces.widget.TextEditor.editor.insertText(0,'Hello','bold',true)

你能证实吗?然后,您还应该能够使用


PrimeFaces.widget.TextEditor.editor.getSelection()

我想你需要做一个功能请求,或者提交一个PR,比如,或者检查覆盖一些javascript文件是否有效…@Kukeltje我做了一个小测试,将结果放在上面的问题中。你能帮我回答第(1.2)点和第(1.3)点吗(见我上面编辑的问题)谢谢!你读过好的手册吗?PrimeFaces(展示和文档)关于定制?从技术上讲,至少有一部分问题是添加自定义按钮,这使得许多javascript变得多余。你在这里有效地添加了多个问题,使得评论变得困难。1.2 1.3和2将不会由我来处理,因为它们是纯羽毛笔,与PF无关。最好分成多个,但让我们先关注1.1。这可以通过更简单的方式实现。样式可能由您通过添加相关类等来决定。添加
jQuery(document).ready(function()
两次)有什么意义?这不是双重触发的问题吗?听起来似乎有道理(我不是OP,但有PrimeFaces知识)我将在今晚检查此工作:PF('editor2')。editor.getSelection();其中“editor2”是
 jQuery(document).ready(function () {
    jQuery(document).ready(function () {