我正在测试 getSelection()
方法,我希望我的程序获取特定文本段落中的选定文本并将其显示在 div 标记中。我使用了以下代码:
var txt = document.getSelection();
document.getElementById("display").innerHTML = "The text you have selected is: " + txt + ".";
但是,我希望程序只获取段落本身的选择,而不是整个文档中的选择。我尝试使用 document.getElementById("id").getSelection();
但它没有用。
我怎样才能使 getSelection()
仅适用于特定元素?
最佳答案
这是一种方法,仅在 Chromium 19 中测试过(它支持 textContent
,对于 Internet Explorer 则必须使用 innerText
):
function getSelectedText() {
if (window.getSelection) {
return window.getSelection().toString();
} else if (document.selection) {
return document.selection.createRange().text;
}
return '';
}
var b = document.getElementsByTagName('body')[0],
o = document.getElementById('output');
b.onmouseup = function(e){
var selText = getSelectedText(),
targetElem = e.target.tagName.toLowerCase();
if (selText && targetElem == 'p') {
o.textContent = 'You selected the text: "' + selText + '" from a ' + targetElem + ' element.';
}
};
关于javascript - getSelection() 可以只应用于某个元素(而不是整个文档)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11821037/