1

我有一个 JavaScript 代码,它使用 window.getSelection() 来查询 Selection 对象。如果我进行选择,则 window.getSelection() 会成功返回选择参数,但是,如果我通过单击屏幕上的其他任何位置使选择无效,则 window.getSelection() 会继续为我提供旧的选择对象。

我不是在构建什么大的东西,所以我不想安装像 Rangy 之类的库。如何使选择对象无效?顺便说一句,我正在为这个脚本使用 Firefox 20.0.1。

请任何建议!

4

1 回答 1

1

如果您单击文本中的其他位置,getSelection则不会给您旧的选择对象,而是一个空对象。可以测试长度selection.toString()

var selectionIsNotEmpty = selection.toString().length>0;

在 WebKit 浏览器上,您选择的类型也会从“Range”更改为“Caret”或“None”。

演示(选择一些东西然后点击其他地方)

于 2013-05-01T06:59:40.753 回答