2009-06-15 8 views
0

Wie kann ich verhindern, dass IE aktualisiert wird, wenn Ctrl-R in der Seite von Skript behandelt wird? Dies gilt auch für Dinge wie das Öffnen des Browserverlaufs usw. Die Lösung muss nicht in Nicht-IE-Browsern funktionieren, aber sie muss sowohl in IE 6 als auch IE 7 funktionieren.Verhindern, dass der IE bei der Verarbeitung von Tastendruck aktualisiert wird

Ist das überhaupt möglich?

+0

Hier kommt die offensichtliche Frage: WARUM ?? – innaM

+0

Der Versuch, die vorhandene Funktionalität zu erhalten. Vorhandene Funktionalität, die mit Tastatur-Hooks und Com-Komponenten durchgeführt wurde. Du willst es wirklich nicht wissen. –

Antwort

1

Diese Versuchen:

<html> 
<head> 
<script> 
function preventStuff() { 
    var e = window.event; 
    if(e.ctrlKey) { 
    switch(e.keyCode) { 
    case 82 : 
     document.body.innerHTML += "<p>Window refresh prevented.</p>"; 
     e.returnValue = false; 
     break; 
    case 72 : 
     document.body.innerHTML += "<p>Browser history prevented.</p>"; 
     e.returnValue = false; 
     break; 
    } 
    } 
} 
</script> 
</head> 
<body onkeydown="preventStuff()"> 
</body> 
</html> 

"82" ist der keyCode für "R", "72" ist der keyCode für "H". Fügen Sie einen ähnlichen Schalter für jeden Schlüssel hinzu, den Sie erfassen möchten.

Getestet auf IE6 und IE7.

+0

F5 kann nicht durch Javascript gestoppt werden, egal was. – Alsciende

+1

O ja F5 kann gestoppt werden http://paste.bradleygill.com/index.php?paste_id=10382 – jitter

+0

Oh ok du schreibst event.keyCode, ich habe das nicht kommen sehen ... – Alsciende

2

Ich denke nicht, dass das möglich ist und ich denke, es sollte nicht zu sein.

ich sieht aus wie ich umdenken muss ...

Mit this library (download link) ich erreichen konnte, was Sie wollen.

Beispielcode. Aber die Bibliothek kann noch viel mehr.

<html> 
    <head> 
     <title>asd</title> 
     <script type="text/javascript" src="shortcut.js"></script> 
    </head> 
    <body> 
     <script type="text/javascript"> 
      shortcut.add("Ctrl+R",function() { 
       alert("Don't reload"); 
      }); 
     </script> 
    </body> 
</html> 
+0

@jitter: Beeindruckend! Aber leider funktioniert das nicht für F5 - der Shortcut-Code wird ausgeführt, aber dann wird die Seite trotzdem aktualisiert. (Ich teste in IE6, wohlgemerkt - es könnte in anderen Versionen anders sein.) – RichieHindle

+0

Well C. Ross nur angefordert Strg + R – jitter

+0

Und Sie können F5 mit Javascript auch in IE http: //paste.bradleygill blockieren. com/index.php? Paste_id = 10382 – jitter

Verwandte Themen