看起来Opera / Mac不允许您在用户按⌘S时覆盖操作(默认情况下是保存页面)。我发现我的旧脚本不起作用。它通过Ajax将表单内容保存到服务器。
这是一个onkey *处理程序:
key = ev.keyCode
if (!key) key = ev.charCode
if (ev.type == 'keypress' && 115 == key && ev.ctrlKey) return false
if (83 == key && ev.ctrlKey) {
if (ev.type != 'keypress') save_text ()
return false
}
Opera / Mac的第一个奇怪之处是它在⌘键上生成ctrlKey而不是实际的Ctrl
键。所以在Safari中,这个完全可以替代我的标准^ S动作。但是在Opera中它完全忽略了^ S,因为ctrlKey对它来说是⌘,但是无论你做什么,⌘S都会带来标准的Save对话框。
当我按⌘S时,我试图实际监控Opera中的所有键*事件序列,然后使用keyCode 17进行键控,然后使用keyCode 17进行按键,并且在按⌘后都发生这两个事件。按S后没有生成任何事件。
所以看起来我运气不好。任何人都知道如何强制Opera让我覆盖⌘S? : - )
答案 0 :(得分:2)
我称之为功能。它不应该让你覆盖一切和任何东西。接下来,您将询问如何在Linux上覆盖Ctrl-Q,以便它不会关闭浏览器......
答案 1 :(得分:1)
我没有Mac方便,但我希望在keydown事件中使用preventDefault()(可能是S,如果有一个被触发)来阻止它。
如果你去这里,勾选“防止默认”框并按下命令-s,你会得到一个保存对话框吗?