2

我正在编写一个 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() )也没有用。

我如何知道某项是否被选中?

4

1 回答 1

4

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

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

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

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

于 2013-06-10T15:59:17.407 回答