0

我正在做一个项目,我需要在 iframe 中获取选定的文本 选定的文本本身可以跨越 iframe 内的多个跨度我不需要获取文本本身,但我需要知道文本交叉的跨度,所有span 的 id 从 1~ 到页面末尾,所以它们都可以通过 id 属性访问,我只需要获取所选文本交叉的 span 的所有 id,我环顾了谷歌,但似乎没有找到某人有同样的问题

4

1 回答 1

0

这是获取范围内的节点的答案,该范围适用于除 IE < 9 之外的所有主要浏览器,但您需要自己获取所选范围:

https://stackoverflow.com/a/7931003

对于跨浏览器解决方案,您可以按如下方式使用我的Rangyiframe库,假设您在名为的变量中引用了 iframe :

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.
}
于 2012-05-12T10:30:10.780 回答