我正在编写一个利用按键的脚本,我需要检测用户是否处于insert
模式或overwrite
模式。
幸运的是,覆盖模式在Firefox,Chrome或Safari中不是一回事,但它在Edge中。
我已经做了大量的搜索,我找到的唯一适用的代码是:
document.queryCommandValue("OverWrite");
但是,从我所能收集的信息来看,自IE11以来,这似乎一直不受支持。在 Edge 中,无论您是否处于插入模式,它都会返回一个空字符串。
我尝试改用document.queryCommandState('OverWrite');
,但同样它总是返回 false。
有没有人知道测试这个的新方法,假设这是一个可以测试的东西?
我尝试使用MS Edge对其进行测试,并且能够产生该问题。可能是某种错误,或者 Edge 团队需要添加对 API 的支持。我将尝试提交有关此问题的反馈。
作为解决方法,您可以参考此答案。您可以使用答案中的 jsfiddle 演示来检测 Edge 中的覆盖模式。但是该函数的缺点是,当您在输入末尾添加字符时,模式检测将不起作用。