Javascript 获取高亮显示/选定的文本
是否有可能获得网站段落中突出显示的文本,例如使用jQuery?获取用户选择的文本相对简单。使用jQuery没有任何好处,因为您只需要Javascript 获取高亮显示/选定的文本,javascript,jquery,textselection,Javascript,Jquery,Textselection,是否有可能获得网站段落中突出显示的文本,例如使用jQuery?获取用户选择的文本相对简单。使用jQuery没有任何好处,因为您只需要窗口和文档对象 function getSelectionText() { var text = ""; if (window.getSelection) { text = window.getSelection().toString(); } else if (document.selection && do
窗口
和文档
对象
function getSelectionText() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
text = document.selection.createRange().text;
}
return text;
}
如果您对同时处理
和texty
元素中的选择的实现感兴趣,可以使用以下方法。由于现在是2016年,我省略了IE所需的代码如果您使用的是chrome(无法验证其他浏览器),并且如果文本位于同一DOM元素中,则此解决方案有效:
window.getSelection().anchorNode.textContent.substring(
window.getSelection().extentOffset,
window.getSelection().anchorOffset)
以这种方式获取突出显示的文本:
window.getSelection().toString()
当然还有对ie的特殊处理:
document.selection.createRange().htmlText
使用
window.getSelection().toString()
您可以在上阅读更多内容是的,您可以使用简单的JavaScript代码片段来完成:
document.addEventListener('mouseup', event => {
if(window.getSelection().toString().length){
let exactText = window.getSelection().toString();
}
}
如果{}-fork还有什么用?“控制”是关于什么的?@Dan:对不起,我错过了这个问题(不要这么认为提醒了我)。第二个分支是IE@TimDown,说“jQuery没有X”是非常容易的,因为当然,有了正确的插件,它可以用javascript在浏览器中做任何事情。在本例中,我们有jquery.selection()。说“也不应该”同样是错误的。我来这里是因为我一直在寻找这个。我有一个用例,jQuery是正确的解决方案。@Auspex:我有点明白你的意思,但我不同意。jQuery插件是一个依赖于jQuery的库;它本身不是jQuery。在选择处理的情况下,jQuery本身完全不提供任何东西(这是应该的,因为选择处理不是jQuery的目的),因此任何使用jQuery的解决方案都是在附带使用它。我已经知道您知道以下内容,@TimDown,但应该注意,这在Firefox中的
textarea
s上不起作用。这是一个.For IE>=10“文档。IE10中删除了对选择的支持,并将其替换为window.getSelection
”。来源:在各种浏览器(如Firefox)中,在多种情况下,此操作都会失败。值得注意的是,当前getSelection()
无法处理Firefox、Edge(旧版)和Internet Explorer中
和
元素的内容HTMLInputElement.setSelectionRange()
或selectionStart和selectionEnd属性可用于解决此问题。简单的javascript适合我。document.getSelection().anchorNode.data.substr(document.getSelection().anchorOffset,document.getSelection().focusOffset document.getSelection().anchorOffset)@RohitVerma:这只适用于包含在单个文本节点中的选择的简单情况,这并不能保证一定会发生。@Dipak您如何从您在文章中引用的博客复制社交共享功能?我不只是返回所选的字符串,而是尝试将该变量填充到twitter链接中。虽然是真的,但这与以前的答案有何不同?(关于这一点的其他答案的评论并不总是有效的,也适用于此处。)