contenteditable -最令人恼火的是,tabindex是不够的推荐的方法是将 values列表保留为黑名单,并假定没有可打印字符的内容吗?对于带有特殊/可编程键的键盘来说,这是如何实现的呢?
当试图在非input|textarea|select|contenteditable上捕获可打印字符时,目前唯一的非哈基(没有许多类似问题中看到的不完整的范围或黑名单)方式,而不使用不推荐的特性使用隐藏的input/textarea,并使用它的值来捕获实际更改该值的字符?
发布于 2017-06-19 10:38:36
好,在研究了一段时间之后,答案是:如果不依赖于不推荐的API或textarea攻击,就无法确定这一点。
当然,这些都不太可能消失,但是如果有人在没有他们的情况下想办法做到这一点,他们就找不到了。
部分解决方案是黑名单的key值,但这只是一个问题,一个新的电视推出了一个古怪的遥控器额外的专有密钥或类似的东西,所有的赌注都取消了。
发布于 2017-05-18 15:45:48
作为一种实用的解决方案,使用key
" "
示例代码:
const isPrintableChar = e.key.length === 1 && e.key !== ' ';
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
return isPrintableChar && !noModifier;为了实现向后兼容性,请考虑使用e.which作为后盾。
https://stackoverflow.com/questions/43877434
复制相似问题