像微信输入法等手机输入法,是怎么处理换行和发送两个按钮事件的呀。 在网页端有办法处理吗,事件里塞了什么标记呀
1
ns09005264 2 天前
Firefox 和 Chrome 都支持远程调试,直接在电脑上调试手机上的网页,你给 input 加上相关的监听事件,打印该事件就知道按了什么键发送了什么 key 或 buttons
|
2
festoney8 2 天前
以搜狗为例,在不同场景下回车键会显示不同功能,比如 回车/搜索/开始/下一步,在网页内对于会自动判断 input type 或 textarea
|
3
rizon OP @ns09005264 还能远程调试手机端的 chrome ? 我居然不知道 。需要 usb 或者 wifi 局域网吗?
|
5
94 2 天前
没有用其他输入法,单单从系统自带的输入法里面没看到 key 和 code 有差异,可能 KeyCode 会有差异?
可能如 zxx 这篇文章中说的改造成 form 表单上面的事件监听,让浏览器自己判断会好一些? [奇了怪了,输入法和 JS Enter 回车提交冲突 « 张鑫旭-鑫空间-鑫生活]( https://www.zhangxinxu.com/wordpress/2023/02/js-enter-submit-compositionupdate/) |
6
PaulSamuelson 2 天前
你是不是想问这个? https://juejin.cn/post/7330255976506081321
要区分用户直接输入 Enter ,还是在 `isComposing` 输入法内输入的 Enter |
7
wentx 2 天前
Enter
Shift+Enter 一个发送,一个换行 |
8
skallz 2 天前
参考飞书等工具,没必要区分,用 shift+enter 换行,因为如果你擅自做了区分,反而会给用户造成困惑,同一个按键会出现不同的功能
|
9
bowencool 2 天前
@ns09005264 safari 也可以
|
10
fuyun 1 天前
输入法状态监听:
```typescript ngAfterViewInit() { const $promptInput = this.promptInput?.nativeElement; $promptInput.addEventListener('compositionstart', () => (this.inputFlag = true), false); $promptInput.addEventListener('compositionend', () => (this.inputFlag = false), false); } ``` |
11
codehz 1 天前
键盘显示什么不是看你 https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/enterkeyhint 里指定了什么吗()
然后操作都是发送换行,另外这玩意不一定能被 composition 事件捕获,除非用户是在输入拼音没上屏的时候按的回车(然而手机输入法还不一定会把这个回车发给浏览器,而是直接上屏了) |