我正在做一個文本編輯器react.Does任何人都知道如何從textarea中選定的文本,以便風格可以應用於選定的文本。我知道我們可以在javascript中使用window.getSelection,但我很好奇知道如果有任何其他方法可用於此功能?如何從文本區域中選擇文本作出反應?
1
A
回答
4
是的,有一種方法可以做到這一點,特別是在React中。你應該去實現這一點的方式如下。
第1步: - 在你的textarea UI元素中使用ref。像
`<textarea
className='html-editor'
ref='myTextarea'
value = {this.state.textareaVal}
onChange={(event)=>{
this.setState({
textareaVal:event.target.value;
});
}}
>
</textarea>`
第2步: - 現在你可以訪問DOM元素,使用react refs。
let textVal = this.refs.myTextarea;
第3步: - 使用selectionStart和選定結束: - 使用selectionStart和
選定結束,你可以瞭解你的起點和終點指針
選擇text.which的 可以按以下步驟進行;
let cursorStart = textVal.selectionStart;
let cursorEnd = textVal.selectionEnd;
現在您已經有了所選文本的開始和結束索引。
第4步: - 使用JavaScript的子字符串函數來獲取選定的文本。
this.state.textareaVal.substring(cursorStart,cursorEnd)
1
在React中製作文本編輯器的最佳方法是使用DraftJS。
如果您使用的是React,則需要使用DraftJS。它將您在嘗試從頭創建自己的文本編輯器時面臨的許多挑戰抽象出來。這包括管理編輯器的狀態(類似於管理組件狀態的方式),管理文本選擇,應用不同的屬性等等。
您可以get started by checking out the docs,我建議您觀看該頁面上的介紹視頻,該視頻解決了DraftJS旨在解決的困難。
我希望有幫助。
相關問題
- 1. 如何在文本區域內保留文本選擇?
- 2. 如何從硒文本區域中選擇幾個字rc
- 3. 如何阻止文本選擇不輸入文本區域和選擇項目
- 4. 無法在IE中的文本區域中選擇文本
- 5. 在文本區域中獲取和設置文本選擇
- 6. 對文本區域的多選擇
- 7. 根據文本區域值選擇行
- 8. Java:如何使用iText從PDF文件中選擇區域提取文本?
- 9. 選擇所有文本區域並添加到一個文本區域
- 10. 如何在文本區域中選擇(一個或多個)行
- 11. jQuery或JavaScript如何突出顯示文本區域中的選定文本
- 12. 如何從文本框中的文本區域添加值?
- 13. 複選框輸入到文本區域 - 添加文本 - 從文本區域刪除文本
- 14. 當從<select>中選擇值時啓用文本區域
- 15. jQuery從文本區域中選擇所有電子郵件
- 16. 如何將文本從文件移動到文本區域?
- 17. 以編程方式在文本區域中選擇文本並同時在textarea中選擇相同的文本
- 18. 如何從jquery中的文本區域獲取選定的文本?
- 19. 記事本++選擇文本中的某個區域
- 20. 如何選擇硒文本區域具有HTML代碼如下
- 21. 如何指定一個選擇器類型=文本或類型=文本區域
- 22. 文本選擇反應母語
- 23. 如何在反應中從文本區域讀取我的輸入?
- 24. 從保存的文本區域反應顯示換行符
- 25. 如何將文本應用於文本區域
- 26. 如何基於下拉選擇實現動態文本區域?
- 27. 如何根據條件選擇文本區域的數量
- 28. 如何選擇輸入和文本區域?
- 29. 如何選擇可替代區域上的替換文本
- 30. 追加日期選擇器選擇一個文本區域