6

Có JavaScript gốc (hoặc sử dụng thư viện như JQuery/Modernizr v.v.) để phát hiện xem thiết bị có khả năng thay đổi hướng không? Tôi muốn sử dụng nó như một phương pháp để phân biệt giữa máy tính để bàn và thiết bị di động.Phát hiện xem thiết bị có thể thay đổi hướng trong JavaScript

Cảm ơn,

Shadi

+3

Không hỗ trợ hầu hết HĐH nào? Trong Windows (hệ điều hành máy tính để bàn khác cũng như tôi đoán) bạn có thể thay đổi định hướng tùy thuộc vào định hướng của màn hình của bạn. Một số sử dụng màn hình 16: 9 của họ trong một hướng đứng, dọc và vân vân. Vì vậy, tôi không nghĩ rằng đó sẽ là một cách tốt để phân biệt giữa máy tính để bàn và thiết bị di động, thật không may. –

+0

@ChristoferEliasson Trong khi tôi đồng ý đó không phải là cách tốt nhất để phân biệt giữa máy tính để bàn và thiết bị di động, phần quan trọng là phát hiện tính năng thay đổi hướng ... điều thú vị là tìm ra – Ian

+2

Thực ra, có vẻ như 'onorientationchange' có thể là tài sản của 'cửa sổ' nếu có sẵn. Trình duyệt của tôi không có, nhưng có vẻ như một sự kiện hợp lệ - http://stackoverflow.com/questions/5284878/how-do-i-correctly-detect-orientation-change-using-javascript-and-phonegap- in-io – Ian

Trả lời

16

phát hiện thiết bị di động:

  1. Simple trình duyệt sniffing

    if (/mobile/i.test(navigator.userAgent)) {...} 
    
  2. jQuery.browser.mobile plug-in (trình duyệt đầy đủ sniffing)

  3. thử nghiệm đơn giản cho các sự kiện liên lạc

    if ('ontouchstart' in window) {...} 
    
  4. kiểm tra nâng cao cho các sự kiện liên lạc:

    if (('ontouchstart' in window) ||  // Advanced test for touch events 
        (window.DocumentTouch && document instanceof DocumentTouch) || 
        ((hash['touch'] && hash['touch'].offsetTop) === 9)) {...} 
    

tùy ý sử dụng onorientationchange cho # 3 và # 4 ở trên.

Kết hợp một hoặc nhiều trong số này (và bất kỳ phương pháp tiếp cận nào khác) khi cần. Không ai trong số họ là dễ dàng.

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