【问题标题】:Get selected text on the page (not in a textarea) with jQuery使用 jQuery 在页面上(不在文本区域中)获取选定的文本
【发布时间】:2023-03-13 00:20:01
【问题描述】:

This plugin 允许您抓取用户在文本区域中选择的文本,this site 具有非基于 jQuery 的指令来抓取用户在文本区域之外选择的文本。

我想知道后者的功能是否可以在任何 jQuery 插件中使用。

编辑:另外,是否可以获得选择的开始和结束索引?即,选择在包含元素中的开始和结束位置?

【问题讨论】:

    标签: jquery selection


    【解决方案1】:

    很难找到一个插件的原因不是它不是很“jQuery”。我的意思是 jQuery 插件通常在 jQuery 对象上运行,并且选择与任何元素无关。

    编辑:我错过了您在问题中发布此链接的事实,但为了完整起见,我将其保留在下方,因为我的版本格式更好(但其他方面相同)。 :)

    <script language=javascript>
    function getSelText() {
      var txt = '';
      if (window.getSelection) {
        txt = window.getSelection();
      } else if (document.getSelection) {
        txt = document.getSelection();
      } else if (document.selection) {
        txt = document.selection.createRange().text;
      } else return;
      document.aform.selectedtext.value =  txt;
    }
    </script>
    <input type="button" value="Get selection" onmousedown="getSelText()"> 
    <form name=aform >
    <textarea name="selectedtext" rows="5" cols="20"></textarea>
    </form>
    

    【讨论】:

    • @Cletus - 您提供的链接与他在问题中已有的链接相同(第二个链接)。
    • 是的,如果它被打包成某种插件,我会更喜欢它(复制和粘贴代码让我觉得很脏)。
    • 是否可以获得选择的开始和结束索引?即,选择在包含元素中的开始和结束位置?
    【解决方案2】:

    复制和粘贴代码的 sn-ps 并没有错,这是大多数人开始的方式,您将继续这样做,直到您对粘贴的 sn-ps 非常熟悉以至于您将开始修改位和部分甚至自己从头开始。

    对于那段特定的代码,除了不依赖内联事件处理程序和用 jQuery 不显眼地添加“mousedown”之外,我真的认为复制它没有任何问题。

    【讨论】:

    • 它猜测 Horace 不喜欢复制和粘贴代码,好像将来它会出现一个错误,它会出现在两个或多个地方而不是一个地方(如果一个插件只有一个作者) .如果它来自当前有 1,100 次浏览的 stackoverflow 文章,那会浪费很多时间。
    猜你喜欢
    • 2014-11-12
    • 1970-01-01
    • 2013-04-08
    • 2017-07-25
    • 2014-05-26
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多