在不触发 trix-change 的情况下对 trix 进行编程更改
Make a programmatic change to trix without triggering trix-change
我正在尝试以编程方式使用类似以下内容对 trix 进行更改:
element.editor.insertHTML(' ')
这没有问题,但不幸的是,这已经在 trix-change 事件中。所以 insertHTML 再次触发自身,我们陷入了循环。
那么问题来了,有没有办法在不触发trix-change的情况下对编辑器进行更改?
谢谢。
您可以设置一个标志来忽略下一个 trix-change
事件。类似于:
let ignoreNextChange = false
element.addEventListener("trix-change", () => {
if (ignoreNextChange) {
ignoreNextChange = false
return
}
if (/* Your logic for inserting a non-breaking space */) {
ignoreNextChange = true
element.editor.insertHTML(" ")
}
})
我正在尝试以编程方式使用类似以下内容对 trix 进行更改:
element.editor.insertHTML(' ')
这没有问题,但不幸的是,这已经在 trix-change 事件中。所以 insertHTML 再次触发自身,我们陷入了循环。
那么问题来了,有没有办法在不触发trix-change的情况下对编辑器进行更改?
谢谢。
您可以设置一个标志来忽略下一个 trix-change
事件。类似于:
let ignoreNextChange = false
element.addEventListener("trix-change", () => {
if (ignoreNextChange) {
ignoreNextChange = false
return
}
if (/* Your logic for inserting a non-breaking space */) {
ignoreNextChange = true
element.editor.insertHTML(" ")
}
})