当前位置: 首页 > 面试题库 >

如何从React中的文本区域获取所选文本?

孟俊晖
2023-03-14
问题内容

我正在尝试在react中创建一个文本编辑器。有人知道如何从textarea中获取所选文本,以便可以将样式应用于所选文本。我知道我们可以在javascript中使用window.getSelection,但我很想知道是否有其他方法可用于此功能?


问题答案:

是的,有一种方法可以做到这一点,特别是在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步:-现在您可以使用react refs访问DOM元素。

    let textVal = this.refs.myTextarea;

步骤3:-使用selectionStart和selectionEnd:-使用selectionStart和
selectionEnd,您可以了解
所选文本的开始和结束指针。

        let cursorStart = textVal.selectionStart;
        let cursorEnd = textVal.selectionEnd;

现在您有了所选文本的开始和结束索引。

第4步:-使用javascript子字符串函数来获取选定的文本。

    this.state.textareaVal.substring(cursorStart,cursorEnd)


 类似资料:
  • 问题内容: 我正在尝试制作自己的 WYSIWYG 编辑器。有什么办法,如何获取用户在textarea中选择的文本? 例如,如果用户选择了某个单词然后单击按钮,那么我如何找出选择了哪个文本? 我正在使用 jQuery 。 问题答案: 尝试使用jquery-fieldselection插件。 您可以从这里下载。也有一个例子。

  • 问题内容: 我正在尝试使用Python中的webdriver以 HTML形式获取文本区域的内容。 我正在获取文本,但是缺少换行符。该selenium文档是几乎无用的; 他们说: selenium.webdriver.remote.webelement.WebElement类(父代,id_) […] text:获取元素的文本。 我目前正在执行以下操作: 这会打印文本区域内容的Python unico

  • 我需要使用Selenium将光标放在文本区域元素中。元素没有ID。我曾经尝试过: 而且它不会引发任何异常

  • 问题内容: 如何在中获取所选项目的文本? 问题答案: 从JTree的 Java教程网站:

  • 问题内容: 我想计算一个文本区域中的行数,例如: 应该最多计数4行。基本上按一次Enter键即可将您转到下一行 以下代码无法正常工作: 无论有多少行,它始终为“ 1”。 问题答案: 我已经将line和lineCount方法实现为String原型: 显然,在IE9中split方法不会在字符串的末尾(或textarea的innerText属性)计算回车符和/或换行符,但在Chrome 22中会对其进行

  • 我有这样一个下拉列表: 如何使用JavaScript获得实际的选项文本而不是值?我可以通过以下方法获得值: 但我想要的不是而是。