Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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 - Fatal编程技术网

Javascript JQuery如何获取所选文本交叉的元素?

Javascript JQuery如何获取所选文本交叉的元素?,javascript,jquery,Javascript,Jquery,我正在做一个项目,我需要在iframe中获取所选文本所选文本本身可以在iframe中跨越多个跨距我不需要获取文本本身,但我需要知道文本跨越了哪些跨距,所有跨距都有从1到页面结束的id,因此可以通过id属性访问所有跨距。我需要的是获取所选文本跨距的所有id,我在谷歌搜索过,但似乎没有发现有人有同样的问题,这里有一个答案,可以让节点位于除IE0){ var范围=选择范围(0); var span=range.getNodes([1],函数(元素){ 返回元素.tagName.toLowerCase(

我正在做一个项目,我需要在iframe中获取所选文本所选文本本身可以在iframe中跨越多个跨距我不需要获取文本本身,但我需要知道文本跨越了哪些跨距,所有跨距都有从1到页面结束的id,因此可以通过id属性访问所有跨距。我需要的是获取所选文本跨距的所有id,我在谷歌搜索过,但似乎没有发现有人有同样的问题,这里有一个答案,可以让节点位于除IE<9之外的所有主要浏览器都能使用的范围内,尽管您需要自己获取所选范围:

对于跨浏览器解决方案,假设在名为
iframe
的变量中有对iframe的引用,则可以按如下方式使用my library:

var sel = rangy.getIframeSelection(iframe);
if (sel.rangeCount > 0) {
    var range = sel.getRangeAt(0);
    var spans = range.getNodes([1], function(element) {
        return element.tagName.toLowerCase() == "span";
    });
    // spans is now an array of selected or partially selected <span>
    // elements. Spans inside other spans are not included.
}
var sel=rangy.getIframeSelection(iframe);
如果(选择范围计数>0){
var范围=选择范围(0);
var span=range.getNodes([1],函数(元素){
返回元素.tagName.toLowerCase()=“span”;
});
//“跨距”现在是选定或部分选定对象的数组
//图元。不包括其他跨距内的跨距。
}

这不是答案,所以我要说:跨浏览器获取选择是一件痛苦的事情,建议使用Tim Down这样的库。我可以使用javascript window.getSelection获取选择本身,但它只获取所选文本,如果我可以得到所选的文本,包括html本身,我的问题就会得到解决,因为我可以解析结果来检测开始标记并从中获取ID,但我仍然在研究您使用什么样的ITJS代码来获取内容?