2009-03-09 5 views
2

On dirait que Opera/Mac ne vous permet pas de remplacer une action lorsque l'utilisateur appuie sur (S (la page par défaut est, bien sûr, la page de sauvegarde). J'ai découvert que mon ancien script ne fonctionne pas. Il enregistre le contenu du formulaire sur le serveur via Ajax.Opera/Mac: remplacer l'événement cmd + S?

Voici un onkey * gestionnaire:

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 
} 

La première bizarrerie de l'Opéra/Mac est qu'il génère ctrlKey sur ⌘ clé au lieu de la clé réelle Ctrl. Donc, dans Safari, celui-ci fonctionne parfaitement en remplaçant l'action standard par la mienne. Mais dans Opera, il ignore complètement^S, car ctrlKey est ⌘ pour cela, mais ⌘S apporte la boîte de dialogue de sauvegarde standard, peu importe ce que vous faites. J'essayais de surveiller toute la séquence d'événements key * dans Opera quand j'appuie sur ⌘S et que c'est keydown avec keyCode 17, puis pressez avec keyCode 17, et les deux se produisent après que j'appuie sur ⌘. Aucun événement n'est généré après que j'appuie sur S.

Donc, il semble que je n'ai pas de chance. Quelqu'un a-t-il une idée sur la façon de forcer Opera à me laisser passer outre ⌘S? :-)

Répondre

2

Je l'appellerais une fonctionnalité. Il ne devrait pas vous laisser remplacer tout et n'importe quoi. Ensuite, vous demanderez comment remplacer Ctrl-Q sur Linux pour qu'il ne ferme pas le navigateur ...

1

Je n'ai pas de Mac à portée de main, mais j'attendrais l'utilisation de preventDefault() à partir d'un événement keydown (probablement le S, si on est viré) pour arrêter ça.

Si vous allez ici, cochez la case "Prevent default" et pressez les commandes, avez-vous une boîte de dialogue de sauvegarde?

http://cross-browser.com/x/examples/key_events.php

+0

Oui Oui. (* requis - au moins 15 caractères) –

+0

Cela semble ne pas fonctionner en effet. Peut-être jeter un rapport à https://bugs.opera.com/wizard/ .. – hallvors

Questions connexes