在 p:textEditor 中添加或追加文本

Add or Append text in p:textEditor

我有p:textEditor像下面这样的

<p:textEditor 
                id="editor"
                widgetVar="editor"
                value="#{xxxController.editorText}" 
                height="300" 
                placeholder="Enter your content"
                toolbarVisible="false"/>

将以下命令按钮 add/append 值设为 p:textEditor

<p:commandButton onclick="insertTag('[myValue]')" value="myValue" type="button" />

JavaScript
<script>
             
        function insertTag( t )
        {
            PF( 'editor' ).insertText( t ) ;
        }
        </script>

但是当我尝试单击 <p:commandButton 时我得到 SCRIPT5007: Unable to get property 'insertText' of undefined or null reference

那么我们如何 insert/append 使用 widgetVar 或 JavaScript 将文本 p:textEditor

版本详情

JSF 2.2, PrimeFaces 6.2

你需要这样做......一旦你有了小部件,“编辑器”变量就是 QuillJS 对象。

PF('editor').editor.insertText(0, 'Hello', 'bold', true);

参见:https://quilljs.com/docs/api/#inserttext

参见:https://quilljs.com/docs/api/#getlength

Using the component ID as widgetVar name

[...] This will cause all original widget var functions to be completely unavailable because the variable editor is now referencing a HTMLDivElement instance which doesn't have the same functions as the original widget var like show(), etc. [...]

(在每个 widgetvar 名称后附加一个 _vw,以消除该问题)

SCRIPT5007: 无法获取 属性 'insertText' 未定义或空引用

猜猜,这正是原因,您的代码没有引用“editor”-widgetVar,而是引用“editor”html 元素,它不知道“insertText”。