2010-02-14 29 views
10

kịch bản tôi đã chắp ghép cho đến nay trông như thế này:làm thế nào để có được các phím mũi tên trên bàn phím để kích hoạt chuyển hướng (trước/sau trang) liên kết trong một 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> 

và html của tôi trông giống như này:

<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> 

mã {PreviousPage}/{NextPage} đại diện cho liên kết trang động khác nhau tùy thuộc vào trang bạn đang truy cập. câu hỏi cụ thể này dành riêng cho tumblr, nhưng nói chung là tốt:

có cách nào để lấy các phím mũi tên trái và phải để kích hoạt các liên kết động này không?

cảm ơn bạn đã đọc và bất kỳ trợ giúp nào về điều này được đánh giá cao.

Trả lời

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

tốt đẹp làm việc tim cảm ơn rất nhiều! – dfogge

+0

'evt = evt || là gì window.event; 'về? –

+0

@ MadsSkjern: Đó là phiên bản cũ của Internet Explorer (lên đến và bao gồm phiên bản 8), trong đó đối tượng sự kiện không được cung cấp làm tham số cho hàm xử lý sự kiện và thay vào đó có sẵn dưới dạng 'window.event'. –

3

Sử dụng tính năng này để cho bạn biết thuộc tính keyIdentifier của đối tượng .

<html> 
<head> 

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

Sau đó, bạn có thể sử dụng logic if-then để bỏ qua tất cả các lần nhấn phím mà bạn không quan tâm và xử lý đúng hành vi của bạn.

Sau đây sẽ gán các phím mũi tên trái và phải cho các liên kết của bạn (dựa trên id của các phần tử liên kết/neo).

<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' không được hỗ trợ trên hầu hết các trình duyệt (bao gồm cả phiên bản hiện tại của Firefox), như vậy là không phù hợp để sử dụng chung trên web được nêu ra. –

+0

Cảm ơn thông tin Tim. Tôi chỉ thử nghiệm nó trong Chrome. – ecounysis

+0

cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn eric nỗ lực đã được đánh giá cao – dfogge

Các vấn đề liên quan