我正在做一个文本编辑器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. 追加日期选择器选择一个文本区域