在Firefox(或Chrome)中更改Ctrl+向左/向右箭头的行为

nukf8bse  于 2022-12-06  发布在  Go
关注(0)|答案(1)|浏览(155)

在Firefox和Chrome中,在文本字段(输入框、文本区域、可编辑的div)中,使用Ctrl+左/右箭头键可以将插入符号一次移动一个单词。在Mac中,这是Alt键。当与Shift键结合使用时,可以创建一个文本选择。
但在Firefox中,如果有标点符号,它会移动到当前单词的末尾,包括任何标点符号。而在Chrome中,它会移动到单词的末尾,然后你再按一次它就越过了标点符号。在Chrome中,一个典型的句子需要更多的按键才能到达末尾。
有人告诉我,微软Word的表现和Chrome一样。在一个快速的LibreOffice测试中,它们有微妙的不同:Chrome会在标点符号的两侧停止,而LibreOffice会跳到标点符号之前的单词结尾,但下一次按下按钮会跳到下一个单词的结尾,在标点符号之前。
因此,*在本例中显示了插入符号的结束位置,如I ctrl+右箭头:

Chrome:        my* list* (*A*,* B*,* C*).*
Firefox:       my* list* (A,* B,* C).*
Libre Office:  my *list *(*A*, *B*, *C*)*.*

这让一些用户抓狂,他们不得不在这些编辑器之间切换。有没有办法在我们的Web应用程序中控制这种行为?或者,在用户的Firefox(或Chrome)设置中?或者我必须关闭这个请求作为“不会(不能)修复”?
(It主要是在contenteditable div中编辑时出现;我们愿意用众多文本编辑web组件中的一个来代替它。他们倾向于控制这个ctrl+arrow键的行为并自己实现它吗?或者他们也坚持浏览器做它的方式吗?允许这种级别控制的组件的例子将是非常受欢迎的,特别是如果他们是开源的,所以我可以看到他们是如何做的。)

g9icjywg

g9icjywg1#

您可以尝试在事件侦听器上使用e.preventDefault()执行Ctrl-箭头键击,并使用this trick手动移动插入符号

相关问题