【问题标题】:Get currently selected text on page获取页面上当前选定的文本
【发布时间】:2011-08-07 20:20:21
【问题描述】:

如何在文本区域中获取当前选定的文本(并对其进行修改)?

我已经看到了可以监听的 select 事件,但我想知道是否有办法只获取当前选定的文本。

另外,您需要使用什么技术才能修改文本区域内的特定文本部分?我认为有一些方法可以找出整个文本区域内容中选择的位置是什么?

我想要做的是选择并修改它,或者将其包装在某些标签等中,就像您在 stackexchange 文本编辑器中所做的那样。

【问题讨论】:

    标签: javascript jquery wysiwyg textselection


    【解决方案1】:

    如果你只需要支持最新的浏览器,你可以使用selectionStartselectionEnd 属性来显示文本区域中所选文本的字符位置。您不能只修改选定的文本,而是更新了值,您可以使用 setSelectionRange 重新选择文本。

    【讨论】:

    • 感谢setSelectionRange 提示
    • 为了更具体地了解浏览器,selectionStartselectionEnd 在除 IE selectionStart 和 selectionEnd 是可写的,因此您可以使用他们或setSelectionRange()。我不确定为什么会有冗余。
    【解决方案2】:

    我已经多次在 Stack Overflow 上发布了我认为可以在所有浏览器(包括 IE

    IE's document.selection.createRange doesn't include leading or trailing blank lines

    我还为此推荐my jQuery plug-in,其中包括此功能以及插入、删除、包围或替换所选文本的其他功能,这听起来正是您想要的。它也是我所知道的唯一一个用于文本区域选择的 jQuery 插件,它可以在 IE

    【讨论】:

      【解决方案3】:

      从这个页面

      http://www.netadmintools.com/art466.html

      function display(txtarea) {
        var sl = (txtarea.value)
           .substring(txtarea.selectionStart, txtarea.selectionEnd);        
      } 
      
      
      <body onload="thisForm=document.frmKey;">
      

      【讨论】:

        【解决方案4】:

        jquery 字段选择插件.. Download Here 现场示例。

        【讨论】:

        • fieldselection 插件在 IE
        【解决方案5】:

        ::selection 选择器也可以工作。 http://www.w3schools.com/cssref/sel_selection.asp

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-26
          • 1970-01-01
          • 2011-05-07
          • 2016-02-02
          • 2014-11-12
          • 2012-12-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多