使用window.getSelection()检查文本是否突出显示

时间:2013-06-10 15:53:18

标签: javascript

我正在编写一个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() )也无效。

我如何知道是否选择了某些内容?

1 个答案:

答案 0 :(得分:4)

这将有效:http://jsfiddle.net/tknkh9xa/1/

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

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

此外,由于空字符串是一个虚假的值,你可以只做 if(window.getSelection().toString())