javascript - jquery 用户屏幕选择

标签 javascript jquery

我正在编写一个脚本,让用户进行屏幕选择(当他们在浏览器中实际突出显示文本时)并且应该操纵该文本。

这就是我想要做的。

获取选中的文本,在原始字符串中搜索选中的文本,然后将在原始字符串中找到的文本用特定的 HTML 标记(<b>, <span>, <a>)包裹起来

我正在使用 jQuery.textselect插件。

我无法弄清楚的部分是一旦找到用户选择如何操作原始文本。

例子: 如果屏幕上显示此文本:“HELLO WORLD”

原文为HELLO WORLD,用户选择HELLO,然后脚本搜索原文为用户选择,将HELLO用<b>包裹起来标签然后输出新的原文……有意义吗?

抱歉让您感到困惑,感谢您的帮助!

最佳答案

这是我能得到的最接近的。由于某些原因,它并不理想(如果您突出显示 Hello,它会突出显示所有的 hello)。文本选择插件不是特别标准化,我无法找到一种方法来了解文本中的 WHERE,除了像素定位之外,事件正在发生,因为 e 变量是一个事件对象,而不是 $(this) 风格的 DOM 元素。

$(function() {
  $(document).bind('textselect', function(e) {
        $('body').html($('body').html().replace(e.text,"<b>"+e.text+"</b>"));
    });
});

jQuery 不太适合此操作,因为它倾向于迎合 DOM 元素的操作,而不是文本操作。

编辑:一个更精确的选项,但这限制了您对单个 DOM 元素产生这种效果:

$(function() {
  $(document).bind('textselect', function(e) {
      var $this = $(e.target);
      $this.html($this.html().replace(e.text,"<b>"+e.text+"</b>"));
    });
});

这是一个很好的问题。

关于javascript - jquery 用户屏幕选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4057161/

相关文章:

javascript + semantic ui : vertical menu with dialog between items, 怎么样?

javascript - Jquery/CSS 问题 #2 : Hover Elements triggering unwanted hovering action

c# - 在 MVC 4 中使用 jquery 工具提示

javascript - Chartjs 的副作用仅适用于 *一些* 客户

javascript - 根据单击哪个按钮在javascript中保存全局变量

javascript - 未捕获的类型错误 : Property '$' of object - jQuery

Jquery 克隆输入并删除克隆输入中的值

asp.net - 检查分散在同一页面上的复选框

javascript - 声明完成时 jQuery 回调未触发 :?

javascript - 不引人注目的 javascript : form not submitting onsubmit()