2012-02-02 18 views
8

Nó có vẻ là một câu hỏi lặp lại khó khăn nhưng tôi vẫn không có cách khắc phục hay cách giải quyết cho nó:accesskey VS phím navigator

Có cách nào để đánh chặn accesskeys trước phím tắt?

Tôi cần sử dụng các phím trên số yêu thích navigator IE và FF, nhưng tôi không thể xem xét các phím tắt hiện có như đã đặt trước. Nếu không, nó không để lại nhiều khả năng (hiện tại tôi chỉ sử dụng các số).

Lưu ý: bằng khóa truy cập, ý tôi là thuộc tính html accesskey.

Bất kỳ ý tưởng nào? Ứng dụng Flash có thể làm điều đó, vậy JavaScript thì sao?


Ví dụ ở đây là một điều khiển truy cập:

<button onclick="alert('Hello');" accesskey="F">Alt+F to activate</button> 

Khi tôi cố gắng để kích hoạt nó, tôi chỉ cần mở file menu: '(

+2

** NOTE ** Bạn sẽ không gặp vấn đề với firefox vì các phím truy cập được kích hoạt bằng * Shift + Alt + [phím] * và menu với * Alt + [key] *. – sinsedrix

+0

Nếu bạn sử dụng trình xử lý khóa, bạn có thể chặn hành vi mặc định. Với các phím truy cập, kinh nghiệm của tôi (từ khoảng 2 năm trước) là bạn cần phải chắc chắn rằng họ không xung đột với các tùy chọn trình đơn, mà không phải là rất khả thi –

+2

Tôi hy vọng câu trả lời là không.Tôi không muốn bất kỳ trang web cũ nào có thể hi-jack các lệnh bàn phím của tôi. Khi tôi tấn công * Alt + F * Tôi muốn menu Tệp. – Umbrella

Trả lời

1

John Resig (tác giả của jQuery) đã được làm việc trên một addon "hotkey" cho jQuery mà nên làm những gì bạn đang tìm kiếm.

https://github.com/jeresig/jquery.hotkeys

Tôi biết đây không phải là một 'câu hỏi jQuery', và thêm một khuôn khổ cho một cái gì đó 'nhỏ' không phải là lý tưởng, nhưng nó sẽ cung cấp một giải pháp. Mặt khác, bạn luôn có thể xem qua cách ông đã làm nó cho cảm hứng.

+0

Nó có thể là một giải pháp jQuery. Tôi đọc về plugin này nhưng nó không phù hợp, vì phụ lục nói hành vi mặc định cũng sẽ bị sa thải: "Những người khác, (IE) hoặc cho phép bạn xử lý các đoạn cắt ngắn tích hợp sẵn, nhưng sẽ thêm chức năng của chúng sau khi mã của bạn đã được thực thi . " – sinsedrix

0

Điều này, rõ ràng, phụ thuộc vào trình duyệt. Đối với những "ông lớn ba":

  • Firefox: các shortcut menu sử dụng Alt, "accesskey" phím tắt sử dụng phím ShiftAlt, vì vậy không có xung đột.
  • Google Chrome: cả hai loại phím tắt sử dụng Alt, và các shortcut menu được ưu tiên, nhưng , nếu có sự mâu thuẫn, "accesskey" phím tắt sử dụng phím ShiftAlt, vì vậy họ vẫn có thể truy cập. Xem câu trả lời của tôi cho Disable Alt functions (shortcuts) in Google Chrome để biết ví dụ.
  • Internet Explorer: cả hai loại phím tắt đều sử dụng các phím tắt Alt và "accesskey" được ưu tiên - chỉ là những gì bạn muốn :-).

Ngắn gọn: Không, không có cách nào để ghi đè hành vi trình duyệt trong Javascript (nhưng có thể là lỗ hổng bảo mật), nhưng tất cả trình duyệt đều có cách xử lý các xung đột này.

+0

Và tại sao trong "ba lớn" IE, không phải Opera? : o) – Legionar

+0

@Legionar: Thành thật mà nói, bởi vì tôi chưa cài đặt Opera tiện dụng (giống như với Konqueror, Safari, Trình duyệt Android ...) :-). Vui lòng chỉnh sửa câu trả lời nếu bạn có thông tin trên các trình duyệt khác. – sleske

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