type
status
date
slug
summary
tags
category
icon
password
你知道那种感觉吗?你只是想在Safari浏览器上使用ChatGPT,轻轻按下回车键确认你输入的英文,但却意外地发送了消息。对,我也遇到了这个问题,让我们一起解决它。
问题的发现
在一个普通的工作日里,我正在ChatGPT上与一个模型交谈,试图在中文输入法下输入一些英文。然而,每次我试图确认输入的英文时,回车键似乎有了自己的“意志”,直接发送了消息。
我开始怀疑,是不是我个人的浏览器有问题?于是,我试了试Chrome和Firefox,结果发现它们表现得都很正常。这让我更加困惑:为什么只有Safari会出这种情况?于是,我转向了技术社区寻找答案。
问题的原因
事实证明,Safari处理
event.isComposing
的方式与其他浏览器不太一样。通常情况下,当我们使用输入法(比如中文)进行输入时,其他的浏览器会将event.isComposing
标记为true
,这意味着我们还在输入的过程中。所以,按下回车键应该是为了确认输入,而不是其他的动作,比如发送消息。但Safari似乎没有正确处理这一逻辑。
这段代码是我们的救星。当按键的
keyCode
为229时(这表示事件来自输入法的处理),它会停止事件的进一步传播,从而防止误发送消息。解决方案
1.书签工具: 一种简单的解决办法是创建一个JavaScript书签工具。这种方法很直接,但缺点是每次你访问页面都需要手动点击它。代码如下:
2.用户脚本: 我在网上找到了这样一个用户脚本。配合Tampermonkey这样的工具,我们可以很方便地自动运行这个脚本,修复问题。
3.Safari扩展: 对于那些喜欢更持久、稳定的解决方案的朋友,创建一个Safari扩展是一个好选择。但是,这也需要更多的技术背景知识。
- 作者:荒岛游民
- 链接:https://huangdao.xyz/article/safari-browser-chinese-input-chatgpt-interaction-fix
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章