gpt4 book ai didi

javascript - 如何从 textAngular 工具栏上的自定义按钮插入文本/符号

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:47 27 4
gpt4 key购买 nike

本质上,我想在工具栏上添加一个按钮,以允许用户将 © 插入 textangular 编辑器 ( http://textangular.com/ ),但是我无法理解如何在按钮注册后向其添加功能。 . 由于 textangular 网站上的所有自定义功能示例都使用相同的语句“wrapSelection”,文档非常少,因此下面显示了一个带有引号按钮的示例。

    taRegisterTool('quote', {
iconclass: 'fa fa-quote-right',
tooltiptext: taTranslations.quote.tooltip,
action: function(){
return this.$editor().wrapSelection("formatBlock", "<BLOCKQUOTE>");
},
activeState: function(){ return this.$editor().queryFormatBlockState('blockquote'); }
});

我对“formatBlock”的初始化位置感到困惑,相信找到它的来源会帮助我解决这个问题。如您所见,我们将不胜感激

    taRegisterTool('insertCopyright', {
buttontext: '&copy;',
tooltiptext: taTranslations.insertCopyright.tooltip,
action: function () {
//???
},
});

最佳答案

只是想我会为任何希望插入自定义符号或类似内容的人发布我们的解决方法答案,显然我们可以将“insertTextAtCursor”和“moveCaret”移到其他地方进行清理,但无论如何..

    taRegisterTool('insertCopyright', {
buttontext: '&copy;',
tooltiptext: taTranslations.insertCopyright.tooltip,
action: function() {
function insertTextAtCursor(text) {
var sel, range;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
range.insertNode(document.createTextNode(text));
}
} else if (document.selection && document.selection.createRange) {
document.selection.createRange().text = text;
}
}

function moveCaret(charCount) {
var sel, range;
if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount > 0) {
var textNode = sel.focusNode;
sel.collapse(textNode.nextSibling, charCount);
}
} else if ((sel = window.document.selection)) {
if (sel.type != "Control") {
range = sel.createRange();
range.move("character", charCount);
range.select();
}
}
}

insertTextAtCursor(String.fromCharCode(169));
return moveCaret(1);
},
});

关于javascript - 如何从 textAngular 工具栏上的自定义按钮插入文本/符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26145428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com