基本上我需要知道 window.getSelection()
何时更改并将处理程序绑定(bind)到此事件。想法?
OBS:请注意,我不希望在 INPUT 或 TEXTAREA 上绑定(bind)选择更改。我说的是窗口中的任何选择。
最佳答案
2019 年更新
所有主流浏览器现在都支持 selectionchange
event ,它完成了工作。 Firefox 是最后一个获得它的浏览器,自版本 52(2017 年 3 月发布)以来,它没有配置标志。
原始答案
没有跨浏览器的方法来检测选择的变化。 IE(我认为从 5.5 版开始)和 WebKit/Blink 浏览器(例如,过去几年的 Chrome、Safari 和 Opera 版本)支持 selectionchange
document
上的事件这正是你想要的。
Firefox 和 pre-Blink Opera 没有这样的事件,你所能做的就是检测通过键盘和鼠标事件所做的选择更改,这是不令人满意的(无法从上下文或编辑菜单中检测“全选”,因为例如),或者简单地轮询 Selection
window.getSelection()
返回的对象(检查选择的 anchorNode
、 anchorOffset
、 focusNode
和 focusOffset
属性与其先前的值应该足够了)。
关于javascript - 如何将处理程序绑定(bind)到窗口上的选择更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8991511/