如何更改FabricJS IText对象中的选定文本?

时间:2017-11-02 16:46:48

标签: fabricjs

有没有办法更改所选文字?

假设我有一个文字“ 示例文字 ”并以编程方式选择一个单词示例

...
text.selectionStart = 0;
text.selectionEnd = 6;
...

所以,text.getSelectedText()返回 Sample ,这就是我需要的...... 下一步,我想要的是将其更改为任何其他文本。

一般来说,我想更改 selectionStart selectionEnd 之间的文字。

有什么想法吗? Tnx提前。

1 个答案:

答案 0 :(得分:1)



var canvas = new fabric.Canvas('c');
canvas.setHeight(300);
canvas.setWidth(500);
var text = new fabric.IText('Sample Text', {
   left: 50,
   top: 100,
   fontFamily: 'arial',
   fill: '#333',
   fontSize: 50
 });
canvas.add(text);
function replaceText(){
 var res = text.getSelectedText();
 text.insertChars(res.split('').sort(() => Math.random() * 2 - 1).join(''));//adding shuffled string
 text.selectionStart = 0;
 text.selectionEnd = 6;
}

<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.19/fabric.js"></script>
<button onclick="replaceText()">Replace</button>
<canvas id="c"></canvas>
&#13;
&#13;
&#13;

您可以使用IText的insertChars()方法。