我有一个[contenteditable=true]
属性的div。当我选择一些文本并单击按钮时,我想获取所选文本。我做了以下事情:
$(".btn").click(function (){
alert(window.getSelection());
});
以上代码不会发出任何警报。如果我将.btn
元素更改为img
元素,则警报会输出所选文本。如何通过点击任何元素获取所选文本
这是我的HTML代码:
<li class="btn">Selection </li>
<div contenteditable="true">Some text here</div>
答案 0 :(得分:2)
当您选择所需文本并单击按钮时,如Ramon&amp;阿德内诺在评论中解释说,焦点已经消失。按钮命令在mouseup
执行,此时清除选择。据我了解,您的代码使用图像的原因是因为与按钮不同,图像命令在mousedown
执行。
我的建议是尝试.on('mousedown', ...)
命令而不是简单的点击命令。
答案 1 :(得分:1)
<script language=javascript>
function getSelText() {
var txt = '';
if (window.getSelection) {
txt = window.getSelection();
}
else if (document.getSelectiion) {
txt = document.getSelection();
}
else if (document.selection) {
txt = document.selection.createRange().text;
}
else return;
alert(txt)
}
window.document.onmousedown = function() {
getSelText()
}
</script>