我找到了一个代码片段(不记得在哪里),它工作正常 - 几乎:-)
问题是,无论在整个网站的哪个位置进行选择,它都会复制选择,并且只有在特定 div 中的情况下才必须复制选择 - 但这是如何完成的?
function getHTMLOfSelection () {
var range;
if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
return range.htmlText;
}
else if (window.getSelection) {
var selection = window.getSelection();
if (selection.rangeCount > 0) {
range = selection.getRangeAt(0);
var clonedSelection = range.cloneContents();
var div = document.createElement('div');
div.appendChild(clonedSelection);
return div.innerHTML;
} else {
return '';
}
} else {
return '';
}
}
$(document).ready(function() {
$("#test").click(function() {
var kopitekst = document.getElementById("replytekst");
var kopitjek=getHTMLOfSelection(kopitekst);
if (kopitjek=='')
{
alert("Please select some content");
}
else
{
alert(kopitjek);
}
});
});
我做了一个Jsfiddle
这是我在这里发表的第一篇文章。希望我做对了:-)
最佳答案
这是因为它检查整个文档:
if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
return range.htmlText;
}
不是特定部分。如果您想检查所选文本的特定部分,则需要确定您正在搜索选择中搜索它们,这会将您的范围锁定到特定的 div:
范围= $('#replytekst');
关于javascript - 获取特定 div 中所选内容的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427556/