如何在javascript中点击元素获取所选文本

时间:2015-04-22 17:38:46

标签: javascript

我有一个[contenteditable=true]属性的div。当我选择一些文本并单击按钮时,我想获取所选文本。我做了以下事情:

$(".btn").click(function (){
   alert(window.getSelection());
});

以上代码不会发出任何警报。如果我将.btn元素更改为img元素,则警报会输出所选文本。如何通过点击任何元素获取所选文本

这是我的HTML代码:

<li class="btn">Selection </li>
<div contenteditable="true">Some text here</div>

2 个答案:

答案 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>