Pregunta

Fondo

Estoy usando envíos de formularios POST en lugar de enlaces con argumentos concatenados dentro de una aplicación web, por lo que puedo ejercer control sobre la entrada.

Lamentablemente, esto significa que los usuarios no pueden usar los atajos rápidos que conocen para abrir enlaces en nuevas ventanas, como hacer clic con el botón de control o hacer clic con el botón central.

Problema

Tengo lo que parece ser una forma viable de usar jQuery para capturar la entrada del mouse y las diversas teclas de acordes, basadas en el Especificación de eventos W3C DOM mouse :

 $("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();

    }
 );

Puedo capturar los clics de control de esta manera (probado en Firefox 3 e IE7), y correctamente (?) informa que los clics a la izquierda provienen del botón del mouse # 0, pero por alguna razón, este código aún no está capturando el medio -los clics en el intervalo, y los clics con el botón derecho todavía aparecen en el menú contextual. Me gustaría capturar los clics medios, al menos.

¿Alguien puede ayudar allí?

¿Qué " control " significa

El problema con un envío / enlace GET con argumentos concatenados es que cualquiera puede editar la barra de direcciones y escribir cualquier cosa. Ya me he preocupado por la autenticación y validación del lado del servidor. No es por eso que quiero trabajar con POST.

Solo debería mostrar información de usuarios que sea significativa. ID de bases de datos internas no son. Solo debería permitir que los usuarios interactúen con la aplicación de manera significativa. Editar arbitrariamente la barra de direcciones no es uno de esos.

La gente hace errores tipográficos todo el tiempo. Sin embargo, desde la perspectiva del sistema, no hay diferencia entre un error tipográfico en la barra de direcciones y una falla en la lógica de la aplicación, y prefiero no imponer la responsabilidad de decidir cuál acaba de suceder a los usuarios.

¿Fue útil?

Solución

¿Respuesta corta? No puedo hacerlo.

¿Respuesta larga? eventos del mouse de Javascript . Todavía no puedo hacerlo.

Esto plantea la pregunta: ¿ necesitas para usar POST o simplemente quieres ? La única razón por la que deberías hacerlo es consultar la longitud de la cadena. En cuanto a querer, usted menciona " controlando la entrada del usuario " ;. ¿Qué significa eso exactamente?

Nunca debes confiar en el navegador para la validación de entrada. Puedes hacerlo allí para tu comodidad, pero el servidor siempre debe validar la entrada.

¿O es la razón estética (es decir, más corta, " URL " más bonita ")?

Estás reinventando la rueda que es hipervínculos. Solo intento asegurarme de que tengas una buena razón para hacerlo porque es contraproducente y nunca obtendrás la misma compatibilidad y compatibilidad con el navegador que los hipervínculos reales. Además, es probable que simplemente moleste a los usuarios porque las cosas que esperan que funcionen no funcionen. No es bueno.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top