2010-02-14 40 views
10

el guión que he monté hasta ahora se ve así:cómo obtener las teclas de dirección del teclado para activar la navegación (página anterior/siguiente) enlaces dentro de un blog

<script type="text/javascript"> 
/* KEYNAV */ 
document.onkeydown = function(e) { 
if (! e) var e = window.event; 
var code = e.charCode ? e.charCode : e.keyCode; 
if (! e.shiftKey && ! e.ctrlKey && ! e.altKey && ! e.metaKey) { 
if (code == Event.KEY_LEFT) { 
if ($('previous_page_link')) location.href = $('previous_page_link').href; 
} else if (code == Event.KEY_RIGHT) { 
if ($('next_page_link')) location.href = $('next_page_link').href;} 
} 
}); 
</script> 

y mi html parece esto:

<p> 
{block:PreviousPage} 
<a id="previous_page_link" href="{PreviousPage}">PREVIOUS PAGE</a> 
{/block:PreviousPage} 

{block:NextPage} 
<a id="next_page_link" href="{NextPage}">NEXT PAGE</a> 
{/block:NextPage} 
</p> 

la AnteriorPágina {}/{} NextPage código representa enlaces de páginas dinámicas que son diferentes dependiendo de la página que se encuentra. esta pregunta en particular es específica de tumblr, pero generalmente también:

¿Hay alguna forma de que mis teclas de flecha izquierda y derecha activen estos enlaces dinámicos?

gracias por leer y cualquier ayuda con esto es muy apreciada.

Respuesta

36
function leftArrowPressed() { 
    // Your stuff here 
} 

function rightArrowPressed() { 
    // Your stuff here 
} 

document.onkeydown = function(evt) { 
    evt = evt || window.event; 
    switch (evt.keyCode) { 
     case 37: 
      leftArrowPressed(); 
      break; 
     case 39: 
      rightArrowPressed(); 
      break; 
    } 
}; 
+0

buen trabajo tim muchas gracias! – dfogge

+0

¿Qué es el 'evt = evt || window.event; 'sobre? –

+0

@MadsSkjern: Eso es para las versiones anteriores de Internet Explorer (hasta la versión 8 incluida), en las que el objeto de evento no se proporciona como un parámetro para la función del controlador de eventos y, en cambio, está disponible como 'window.event'. –

3

Utilícelo para indicar el atributo keyIdentifier del objeto .

<html> 
<head> 

<script type="text/javascript"> 
    document.onkeydown = function() { 
    alert (event.keyIdentifier); 
}; 
</script> 
</head> 
<body> 
</body> 
</html> 

continuación, puede utilizar la lógica si-entonces ignorar todas las pulsaciones de teclas que no les interesa, y el alambre de la conducta correcta de los que son.

Lo siguiente asignará las teclas de flecha izquierda y derecha a sus enlaces (basado en la identificación de los elementos de ancla/enlace).

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
      document.onkeydown = function() 
       { 
        var j = event.keyIdentifier 
        if (j == "Right") 
         window.location = nextUrl 
        else if (j == "Left") 
         window.location = prevUrl    
         } 
        }); 

     $(document).ready(function() { 
        var nextPage = $("#next_page_link") 
        var prevPage = $("#previous_page_link") 
        nextUrl = nextPage.attr("href") 
        prevUrl = prevPage.attr("href") 
       }); 

</script> 
</head> 
<body> 
<p> 
    <a id="previous_page_link" href="http://www.google.com">Google</a> 
    <a id="next_page_link" href="http://www.yahoo.com">Yahoo</a> 
</p> 
</body> 
</html> 
+2

'keyIdentifier' no es compatible con la mayoría de los navegadores (incluyendo la versión actual de Firefox), por lo que no es adecuado para su uso general en la web todavía. –

+0

Gracias por la información Tim. Solo lo probé en Chrome. – ecounysis

+0

muchas gracias por su ayuda eric el esfuerzo fue apreciado – dfogge

Cuestiones relacionadas