Frage

Hintergrund

Ich bin mit POST Formularen anstelle von Links mit verketteten Argumenten innerhalb einer Web-Anwendung, so kann ich die Kontrolle über Eingang ausüben.

Leider bedeutet dies, Benutzer nicht die schnellen Abkürzungen sie wissen, kann Links in einem neuen Fenster zu öffnen, wie Steuerklick oder mittlere Maustaste.

Problem

Ich habe, was eine praktikable Art und Weise zu sein scheint jQuery zu verwenden Mauseingabe und die verschiedenen Akkordtasten zu erfassen, basierend auf der W3C-DOM-Mausereignisse Spezifikation :

 $("span#clickspan").click( function(event) {

   buttonpress = event.button;
   ctrlpress = event.ctrlKey;

    $("#clickresult").empty();
    $("#clickresult").append("<p>Click!</p>");
    $("#clickresult").append("<p>Button # " + buttonpress + " pressed!</p>");
    if (ctrlpress) {
        $("#clickresult").append("<p>Control-click!</p>");
    }

    //form submission code would go here

    event.preventDefault();

    }
 );

Ich kann Zugsteuerung Klicks auf diese Weise erfassen (getestet in Firefox 3 und Internet Explorer 7), und es richtig (?) Berichtet links Klicks von Maustaste # kommenden 0, aber aus irgendeinem Grund immer noch dieser Code nicht Mitte Erfassung -clicks auf der Spannweite und der rechten Maustaste öffnet sich nach wie vor über das Kontextmenü. Ich mag mittlere Klicks erfassen, zumindest.

Kann jemand da helfen?

Was bedeutet "Kontrolle"

Das Problem mit einer GET-Vorlage / link mit verketteten Argumenten ist, dass jemand auf die Adressleiste und geben Sie alles bearbeiten kann. Ich habe bereits besorgt über Authentifizierung und Validierung Server-Seite. Das ist nicht, warum ich mit POST arbeiten.

Ich soll nur Benutzer Informationen zeigen, die sinnvoll ist. Interne Datenbank-IDs nicht. Ich soll nur dass der Anwender auf sinnvolle Weise mit der Anwendung interagieren. Willkürlich die Adressleiste Bearbeitung ist nicht einer von denen.

Die Menschen machen Fehler die ganze Zeit. Aus der Sicht des Systems, obwohl, gibt es keinen Unterschied zwischen einem Tippfehler in der Adressleiste und ein Fehler in der Anwendungslogik, und ich mag lieber nicht die Verantwortung drängt Entscheidung, die man nur auf die Benutzer geschehen wird.

War es hilfreich?

Lösung

Kurze Antwort? Kann es nicht tun.

Lange Antwort? Javascript Mausereignisse . Dennoch kann es nicht tun.

Es stellt sich die Frage: Haben Sie Notwendigkeit verwenden POST oder tun Sie wollen einfach zu? Der einzige Grund, warum Sie benötigen würden Query-String-Länge sind. Was es zu wollen, erwähnen Sie „Controlling Benutzereingabe“. Was das bedeutet genau?

Sie sollten nie jemals für Eingabevalidierung im Browser verlassen. Sie können als Bequemlichkeit es dort tun, aber der Server sollte immer Eingabe bestätigen.

Oder ist der Grund, Ästhetik (dh kürzer, "schönere" URLs)?

Sie das Rad neu erfinden, die Hyperlinks ist. Ich versuche nur, um sicherzustellen, dass Sie zu tun, um einen verflixt guten Gründe haben, weil es kontraproduktiv ist und Sie nie die gleiche Browser-Unterstützung und Kompatibilität als tatsächlicher Hyperlinks in Gang zu bringen. Und Sie sind wahrscheinlich einfach Ihre Benutzer verärgern, indem Sie Dinge, die sie erwarten, arbeiten, nicht zu arbeiten. Nicht gut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top