2012-02-25 44 views
11

Có cách nào để kiểm tra trình duyệt cho dù trình duyệt có hỗ trợ 'API lịch sử HTML5' hay không bằng JavaScript.Kiểm tra tính tương thích của trình duyệt đối với hỗ trợ API Lịch sử HTML5?

Tôi có phải kiểm tra tất cả các trình duyệt và các phiên bản của trình duyệt có danh sách dài điều kiện trong câu lệnh if không. Hoặc đơn giản là việc kiểm tra bất kỳ đối tượng chức năng nào bằng cách sử dụng câu lệnh 'if' là đủ ... ...

+0

Kiểm tra bài đăng này: http://stackoverflow.com/questions/4708358/detect-whether-html5-history-supported- hoặc không – mariogl

+0

[Modernizr] (http://modernizr.com) có thử nghiệm "lịch sử". – Pointy

+0

Xem thêm [CanIUse] (http://caniuse.com) – Pointy

Trả lời

27

Kiểm tra sự tồn tại của phương pháp pushState() trên đối tượng lịch sử toàn cầu là đủ.

function supports_history_api() { 
    return !!(window.history && history.pushState); 
} 

Để biết thêm HTML nói chung phát hiện 5 tính năng tôi muốn nhìn vào hiện đại hóa

http://diveintohtml5.info/detect.html#modernizr

này sẽ cách ly mã của bạn từ các chi tiết cụ lộn xộn của mỗi bài kiểm tra, làm cho mã dễ đọc hơn và ít lỗi dễ bị. Với kịch bản hiện đại hóa trên trang của bạn, bạn muốn chỉ làm:

if (Modernizr.history) { 
    // history management works! 
} else { 
    // no history support :(
    // fall back to a scripted solution like History.js 
} 
+0

Thnx friend ... :) –

3

Kiểm tra sự tồn tại của các đối tượng là đủ, vì nó thường đủ với phát hiện tính năng nói chung.

-1

Bạn có thể kiểm tra thời tiết hoặc không phải là một chức năng được đăng ký:

if (typeof history.pushState != 'undefined') { 
    //Enabled 
} 

Sau đó chỉ cần thay thế // Enabled với bất cứ điều gì bạn muốn làm nếu nó được hỗ trợ.

0

Bạn có thể sử dụng canisuse.js kịch bản để phát hiện nếu trình duyệt của bạn hỗ trợ lịch sử hay không

caniuse.history() 
Các vấn đề liên quan