WebKit 在所有应用中始终启用复制菜单项 笔记

WebKit 在所有应用中始终启用复制菜单项

Daring Fireball 的 John Gruber 注意到一个问题:在 Safari 中,即使网页上没有选中任何文本,“复制”菜单项仍然处于启用状态。Jeff Johnson 确认了这一缺陷,该缺陷源于 WebKit,即 Safari 所使用的渲染引擎。此问题也影响其他应用程序,如邮件客户端,以及使用 WebKit 的 RSS 阅读器(如 NetNewsWire 和 Vienna)。当 WebKit 视图中没有选中内容时,执行复制操作会导致粘贴的内容无意义,并覆盖剪贴板中现有的内容。传统上,macOS 应用程序会在未选中任何内容时禁用“复制”和“剪切”菜单项;调用禁用的复制键盘快捷键会发出提示音,以表明该操作不可用。然而,自 2025 年初以来,基于 WebKit 的应用程序允许在没有任何选中的情况下复制空数据或无用数据。这种行为被视为一个缺陷,因为它会擦除有价值的剪贴板历史记录,却未提供任何功能。Johnson 已向 WebKit 的 Bugzilla 报告了此问题,但该问题被错误地标记为“不予修复”。WebKit 团队将应用程序级别的复制命令行为与 JavaScript 的 document.execCommand("copy") 功能混淆了。该缺陷是在 WebKit 工程师试图修复一个长期存在的与复制相关的 JavaScript 缺陷时引入的。Johnson 希望 WebKit 团队重新审视此前提交的缺陷报告,尤其是考虑到他们近期对缺陷提交的鼓励态度。