🚀 功能建议:改进提词的方式
qzi opened this issue · 34 comments
请先确认以下事项
功能描述
https://scaledagileframework.com/built-In-quality/
这个页面选词查询会附带版权信息,所以查询的时候特别不方便,但是系统自带的那个查词却没有这个问题,所以我在猜想会不会是提词时使用的方法不一样,这不算一个bug,但是可以算功能改进吧
使用场景(可选)
在浏览的页面上查询选择的单词
实现方案(可选)
就是在页面选了啥词就查哪个词,不要附带版权信息去查询
Hello qzi, Thank you for your first issue contribution 🎉
不是,我知道有些网页有这种限制,但它是通过拦截快捷键 Cmd+C 实现,这不影响 Easydict 取词查询,无论自动取词,还是快捷键取词,我这里测试都是正常的。
ensure
© Scaled Agile, Inc.
Include this copyright notice with the copied content.
Read the FAQs on how to use SAFe content and trademarks here:
https://scaledagile.com/about/about-us/permissions-faq/
Explore Training at:
https://scaledagile.com/training/calendar/
原来如此,确实,苹果自家的 Safari 不支持 Auxiliary,所以目前在 Safari 上 Easydict 采用的是快捷键 Cmd+C 取词。
我稍后研究一下,看看有没有别的方式能绕过去。
(小声讨论一下,用 Chrome 不好吗 🥹,Safari 上好多类似问题 #41 (comment) )
🫠
也是,我后面尝试一下吧。这问题有点难搞哦 😢
就很奇怪,我本地在 Chrome 和 Edge 上使用都没有问题,Debug 显示它们俩都是原生支持 Auxiliary 取词,这种方式不会被网页事件 JS 篡改的。
麻烦提供一下你的测试环境:设备型号,系统版本,浏览器版本,以及复现问题详细操作步骤,如取词的具体类型(单击,双击,三击,Shift 等),方便的话,希望能录个视频,这样更容易看到问题所在。
captured video
https://app.screencast.com/zWguuSTg3h7z7
了解了,你这个情况,可能和 issue #84 (comment) 类似,在我的这边工作正常,但不知道为什么在你电脑上 Auxiliary 取词失败,然后自动采取了模拟快捷键 Cmd+C 方式取词,然后就被网页事件拦截了,从你视频中一闪而过的那个搜索🔍小弹窗能看出来。
这个问题还不容易解决,不像 #84 加个白名单就行,得找到导致问题的原因。但目前在我电脑上无法复现。。
了解了,你这个情况,可能和 issue #84 (comment) 类似,在我的这边工作正常,但不知道为什么在你电脑上 Auxiliary 取词失败,然后自动采取了模拟快捷键 Cmd+C 方式取词,然后就被网页事件拦截了,从你视频中一闪而过的那个搜索🔍小弹窗能看出来。
这个问题还不容易解决,不像 #84 加个白名单就行,得找到导致问题的原因。但目前在我电脑上无法复现。。
复现了Safari也足够了
想了一下,起来好像也是。
但实际还是不一样的,Safari 是知道原因的,是它本身就不支持 Auxiliary,所以可以尝试采用 AppleScript 取词,而 Chrome 和 Edge 这些,理论上是支持 Auxiliary 取词,只是不知道为它们为什么在某些电脑上不工作。
取词方式: Auxiliary > AppleScript > 模拟快捷键
无论是性能还是用户体验上,Auxiliary 都是最优的,如果不能找出具体原因,直接用 AppleScript 肯定不是一个好的选择。更别说不同浏览器调用的 AppleScript 都不同,代码适配费心费力。
行吧,既然准备支持 Safari AppleScript 取词,那就把 Chrome 和 Edge 也都支持了吧 😔
这个我个人想可以参考 Bob 在设置里加一个选项:
取词方式
- 性能优先(全部使用 Auxiliary)
- 兼容性优先(对一些反馈上来的app使用模拟 Cmd+C / 全部使用 Cmd+C)
@tisfeng 我复现了
你试试chrome,edge,safari,我早上在Mac上实验了这个三个都有这个问题
我用 Safari 确实有这个问题,但是用 Arc (Chromium Engine Version 113.0.5672.63) 没有复现
最新 dev 已经改进了对浏览器的取词,现在如果 Safari 和 Chrome 使用 Auxiliary 取词失败,会尝试 AppleScipt 方式取词,这种取词效果基本和 Auxiliary 一致。
虽然新加的 AppleScipt 取词功能,理论上对所有的 Chrome 内核都适用,但目前 Chrome 浏览器白名单我只加了 Google Chrome 和 Microsoft Edge,如果后续有其他类型浏览器也有问题,可以参照添加。
这个白名单,只是一种过渡方法,后续会允许用户选择哪些应用可以在 Auxiliary 取词失败时启用模拟快捷键 Cmd+C 方式取词。
https://github.com/tisfeng/Easydict/blob/dev/Easydict/Feature/EventMonitor/EZEventMonitor.m#L461
孤军奋战ing
这个具体是指什么?
把设置openai key后查词功能也开放一下吧
搜了 issue 吗,你是要这个 #28 (comment) ?
请问这个具体是什么表现?是选择文本的高亮背景自动消失了? 我没遇到过这问题,如果可以复现,你录个视频,我查一下 🧐
但是你的软件会马上抹除我选择的高亮文字
你的问题都太简洁,太模糊了,我很难猜的 🥹
在哪个应用中?或哪个浏览器,哪个网页?选中的文本是输入框文本吗?抹除?
请问这个具体是什么表现?是选择文本的高亮背景自动消失了? 我没遇到过这问题,如果可以复现,你录个视频,我查一下 🧐
但是你的软件会马上抹除我选择的高亮文字
选中后高亮的文字被你的软件拦截,有时候并不需要查词,就只是想高亮突出一下也不行了,除非关掉你的软件
https://app.screencast.com/Ddwim67VTrQcE
看视频明白了,选中文本高亮消失问题,其实是这个网页自己搞得鬼,它检测到复制文本动作,就把高亮去掉了 😓
这些其实都是同一个问题,都是因为你当前使用的浏览器不支持 Auxiliary 取词,而这个网页又很奇葩对模拟快捷键取词进行了拦截限制。
这类问题将会在下个版本修复,下版本在浏览器 Auxiliary 取词失败时,尝试 AppleScipt 取词。
你好,新版本已修复该问题 https://github.com/tisfeng/Easydict/releases/tag/1.3.1
刚升级了1.3.1,在safari和edge上试了下还是一样有问题
最新版本的easydict,firefox 129.0.2 版本也有option+d后不能获取选定字的问题。之前版本的easydict是没问题的