gpt4 book ai didi

Javascript:如何获取选定文本范围之外的文本

转载 作者:行者123 更新时间:2023-11-30 18:33:20 24 4
gpt4 key购买 nike

我知道如何通过以下方式获取选定范围内的文本:

if (elem.getSelection) {
sel = elem.getSelection();
if (sel.rangeCount) {
selectedText=sel.getRangeAt(0);
}
} else if (elem.selection) {
selectedText=elem.selection.createRange();
}

问题 - 如何获取选定范围之前和之后的文本?提前致谢。

最佳答案

这是一个在大多数浏览器中使用 DOM Range 和在 IE < 9 中使用 TextRange 的函数。

现场演示:http://jsfiddle.net/bVpqR/

代码:

function getUnselectedText(containerEl) {
var sel, range, tempRange, before = "", after = "";
if (typeof window.getSelection != "undefined") {
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(0);
} else {
range = document.createRange();
range.collapse(true);
}
tempRange = document.createRange();
tempRange.selectNodeContents(containerEl);
tempRange.setEnd(range.startContainer, range.startOffset);
before = tempRange.toString();

tempRange.selectNodeContents(containerEl);
tempRange.setStart(range.endContainer, range.endOffset);
after = tempRange.toString();

tempRange.detach();
} else if ( (sel = document.selection) && sel.type != "Control") {
range = sel.createRange();
tempRange = document.body.createTextRange();
tempRange.moveToElementText(containerEl);
tempRange.setEndPoint("EndToStart", range);
before = tempRange.text;

tempRange.moveToElementText(containerEl);
tempRange.setEndPoint("StartToEnd", range);
after = tempRange.text;
}
return {
before: before,
after: after
};
}

关于Javascript:如何获取选定文本范围之外的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8999293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com