javascript - 如何使用 JavaScript 获取选中的文本

标签 javascript getselection

我有点困惑为什么这段代码不起作用!

HTML 标记:

<div id="diva"><b>Score</b> some <i>goals</i></div>
<div id="soda"></div>

JavaScript 代码:

function GetSelectedText () {
if (window.getSelection) {  // all browsers, except IE before version 9
    var range = window.getSelection ();
    alert (range.toString ());
} 
else {
    if (document.selection.createRange) { // Internet Explorer
        var range = document.selection.createRange ();
        alert (range.text);
    }
}
}

var butn = document.getElementById("soda");
butn.onclick = function(){
    GetSelectedText();
}

最佳答案

您可能遇到的一个问题是,在某些浏览器(尤其是 IE)中,当按钮的 click 事件触发时,选择已被破坏。您可以通过使用 mousedown 事件来解决这个问题(它仍然允许销毁选择,但只能在事件被处理之后),或者通过 making the button unselectable 来解决。 .

我假设您的按钮不是实际的按钮输入,因为这种行为只发生在常规元素上。

演示:http://jsfiddle.net/L9bvU/1/

function GetSelectedText () {
    if (window.getSelection) {  // all browsers, except IE before version 9
        var range = window.getSelection ();
        alert (range.toString ());
    } 
    else {
        if (document.selection.createRange) { // Internet Explorer
            var range = document.selection.createRange ();
            alert (range.text);
        }
    }
}
span {
    background-color: #ccc;
    padding: 3px;
    border: solid gray 1px;
    
}

*[unselectable="on"] {
   -moz-user-select: -moz-none;
   -khtml-user-select: none;
   -webkit-user-select: none;

   /*
     Introduced in IE 10.
     See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/
   */
   -ms-user-select: none;
   user-select: none;
}
<div contenteditable="true">Please select some of this text and press a button below</div>

<span onclick="GetSelectedText()">Click</span>
<span onmousedown="GetSelectedText()">Mousedown</span>
<span unselectable="on" onclick="GetSelectedText()">Click, unselectable</span>

关于javascript - 如何使用 JavaScript 获取选中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14553534/

相关文章:

Javascript:转换 %XX%XX 形式的特殊字符?

javascript - 使用 jQuery 3.X.X 加载元素上的 Fire 函数

javascript - window.getSelection() 如何获取 contenteditable javascript 中的当前节点

javascript - 如何支持跨浏览器多选文本?

javascript - 在 Cordova 应用程序中检测互联网丢失

javascript - 如何在 JavaScript 中将 addEventListener 指定为 ON?

javascript - 用 JavaScript 模仿 Ctrl+A

javascript - 如何在 IE11 中保留 getSelection().toString 中的 br 标签?

Javascript选择文本突出显示问题

javascript - 如何在数据属性中使用驼峰命名法