我正在编写一个JavaScript函数,该函数需要首先检查用户是否已突出显示/选择了页面上的某些文本。我在线阅读了这应该工作:

if ( typeof window.getSelection() != "undefined" ) {
    var x = window.getSelection().toString();
}
else {
    //nothing is selected, so use default value
    var x = "default value";
}


但这是行不通的,因为即使没有选择任何内容,window.getSelection()也会返回一个对象。

if ( typeof window.getSelection().toString() !== "" ) {
    var x = window.getSelection().toString();
}
else {
    //nothing is selected, so use default value
    var x = "default value";
}


但是,即使window.getSelection()。toString()返回一个空字符串,它仍然使用该空字符串而不是默认值。

最后,if ( window.getSelection() )也不起作用。

我怎么知道是否选择了某些东西?

最佳答案

这将起作用:http://jsfiddle.net/tknkh9xa/1/

(window.getSelection().toString() != "")


您的问题是您正在检查typeof的结果上的toString() ...,这不是一个空字符串(它将是“ string”)。

另外,由于空字符串是虚假值,因此您可以
if(window.getSelection().toString())

关于javascript - 使用window.getSelection()检查文本是否突出显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17027960/

10-11 12:25