Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何知道选中/突出显示文本jquery的顺序出现_Javascript_Jquery_Highlight_Highlighting - Fatal编程技术网

Javascript 如何知道选中/突出显示文本jquery的顺序出现

Javascript 如何知道选中/突出显示文本jquery的顺序出现,javascript,jquery,highlight,highlighting,Javascript,Jquery,Highlight,Highlighting,我正在测试一个小的演示 例如,我在标签中有这样一个文本 <body> good morning, good morning abcdef ajska good morning ssssss <body> 但我只是想找个人 使用鼠标选择一个段落,将显示类似提示的警告框 让我知道选定的paraghaph的订单外观 非常感谢你。 谢谢我想我理解你想要实现的目标,我有一个想法,虽然它并不可靠,但也许这可以让你领先一步 获取突出显示的文本,找到正文中所有类似的文本,并用将其包

我正在测试一个小的演示

例如,我在标签中有这样一个文本

<body>

good morning, good morning

abcdef ajska
good morning
ssssss
<body>
但我只是想找个人 使用鼠标选择一个段落,将显示类似提示的警告框 让我知道选定的paraghaph的订单外观

非常感谢你。
谢谢

我想我理解你想要实现的目标,我有一个想法,虽然它并不可靠,但也许这可以让你领先一步

获取突出显示的文本,找到正文中所有类似的文本,并用
将其包装起来。然后获取
索引以确定突出显示的文本的出现

我们可以通过获取鼠标
单击
事件坐标来获取发生值。然后找到位于该坐标上的
,并检索其索引

我们通过以下方式获得突出显示的文本:

var text;
if(window.getSelection){
    text = window.getSelection().toString();
}else if (document.selection && document.selection.type != 'Control'){
    //for IE prior to 9
    text = document.selection.createRange().text;
}
然后检查文本是否为空或非空格,并用span换行所有类似文本:

if($.trim(text).length){
    //wrap each word similar to the highlighted text with <span>
    var regex = new RegExp(text,'g')
    $('body').html($('body').html().replace(regex, '<span>'+text+'</span>'));
}
获取位于该坐标上的新跨距:

var el = document.elementFromPoint(x, y)

这是

我想我理解你想要实现的目标,我有一个想法,虽然它并不可靠,但也许这可以给你一个领先的开始

获取突出显示的文本,找到正文中所有类似的文本,并用
将其包装起来。然后获取
索引以确定突出显示的文本的出现

我们可以通过获取鼠标
单击
事件坐标来获取发生值。然后找到位于该坐标上的
,并检索其索引

我们通过以下方式获得突出显示的文本:

var text;
if(window.getSelection){
    text = window.getSelection().toString();
}else if (document.selection && document.selection.type != 'Control'){
    //for IE prior to 9
    text = document.selection.createRange().text;
}
然后检查文本是否为空或非空格,并用span换行所有类似文本:

if($.trim(text).length){
    //wrap each word similar to the highlighted text with <span>
    var regex = new RegExp(text,'g')
    $('body').html($('body').html().replace(regex, '<span>'+text+'</span>'));
}
获取位于该坐标上的新跨距:

var el = document.elementFromPoint(x, y)

这是

请更具体一些,包括您的演示中的选择代码。谢谢您的回复。我的意思是选择就像你用鼠标复制一个段落(用鼠标复制一个范围)。请更具体一些,包括你的演示中的选择代码。谢谢你的回复。我的意思是,选择就像用鼠标复制段落一样(用鼠标创建要复制的范围)。我不确定
document.elementFromPoint
是否仍然可靠,但我已经在chrome和firefox上测试过,它似乎工作正常。我不确定
document.elementFromPoint
是否仍然可靠,但我已经在chrome和firefox上测试过,它似乎工作正常。