2011-08-07 29 views
14

Có cách nào để đặt tiêu điểm cho tài liệu, tức là vùng nội dung, trong JavaScript không? document.focus() dường như không làm gì cả.Có cách nào trong JavaScript để tập trung tài liệu (khu vực nội dung) không?

+0

Tài liệu đó có nằm trong cửa sổ cao nhất của tab trình duyệt không? Tab đó có hoạt động (hoặc trong nền) không? Làm thế nào chính xác tập trung một tài liệu tự biểu hiện? –

+0

1. vâng, 2. vâng, 3. bằng cách có các phím mũi tên gây ra di chuyển và không có bất kỳ điều gì khác tập trung, ví dụ: liên kết, nút, hộp văn bản. – Timwi

+0

Tôi nghĩ bạn muốn 'window.focus();'. Di chuyển bằng các phím mũi tên được bật bằng cách lấy nét đối tượng cửa sổ ... –

Trả lời

24

Trong HTML 4.01, tập trung chỉ thảo luận trong bối cảnh các yếu tố như hình thức kiểm soát và liên kết. Trong HTML 5, nó được thảo luận rộng rãi hơn nhiều. Tuy nhiên, làm thế nào tập trung làm việc cho các tài liệu chủ yếu là trình duyệt phụ thuộc.

Bạn có thể thử:

// Give the document focus 
window.focus(); 

// Remove focus from any focused element 
if (document.activeElement) { 
    document.activeElement.blur(); 
} 

Nó là rất tốt supported là tốt.

+1

Active Element được hỗ trợ khá tốt. Xem: http://stackoverflow.com/questions/5318415/which-browsers-support-document-activeelement – Benry

+0

Benry - cảm ơn vì liên kết. Tôi vẫn nghĩ rằng nó cần phải được tính năng thử nghiệm mặc dù, chi phí của một vài truy cập tài sản là rất thấp so với một lỗi kịch bản có thể. Thật không may môi trường dev của tôi vừa được nâng cấp để thả một buch của các trình duyệt cũ hơn (không phải lựa chọn của tôi) vì vậy tôi không thể thử nghiệm trong công cụ cũ nhiều hơn nữa. :-( – RobG

+0

** Cảnh báo IE ** - xem http://stackoverflow.com/questions/3586139/ie-is-randomly-minimizing-when-a-link-is-clicked –

2

Dường như đoạn mã sau hoạt động ...

document.activeElement.blur(); 
+0

Nếu không có phần tử nào được kích hoạt, nó sẽ trả về phần tử cơ thể. Nếu * activeElement * không được hỗ trợ, nó sẽ ném một lỗi. – RobG

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