2017-11-02 9 views
0

선택한 텍스트를 변경할 수있는 방법이 있습니까? FabricJS IText 객체에서 선택한 텍스트를 변경하는 방법은 무엇입니까?

는 " 샘플 텍스트"및 프로그래밍 단어를 샘플 그래서

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

, text.getSelectedText() 내가 필요로하는 것입니다 샘플을 반환을 선택 I 텍스트를 가정합니다. .. 다음 단계에서 원하는 것은 다른 텍스트로 변경하는 것입니다.

일반적으로 내가 지정한 selectionStart 사이 selectionEnd에있는 텍스트를 변경하려면, 말하기.

아이디어가 있으십니까? 사전에 Tnx에 있습니다.

답변

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>

당신은이 iText의 insertChars() 방법을 사용할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 두 개의 서로 다른 위치에있는 문장을 동시에 교체해야하는 경우 어떻게해야할까요? 교체해야 할 텍스트가 다를 수 있습니다 ... –

+0

Upvote 및 작동시 표시, 건배;) – Durga

+0

범위를 선택하고 하나씩 설정하십시오. – Durga