2012-02-25 94 views
11

有沒有什麼辦法來檢查瀏覽器是否支持「HTML5歷史API」使用JavaScript。查看HTML5歷史API支持的瀏覽器兼容性?

我一定要檢查所有的瀏覽器及其版本的條件一長串if語句。 或者乾脆喜歡用「如果」聲明是不夠??? ...

+0

檢查這個帖子:http://stackoverflow.com/questions/4708358/detect-whether-html5-history-supported-或-不 – mariogl 2012-02-25 17:37:27

+0

[Modernizr的](http://modernizr.com)具有 「歷史」 測試。 – Pointy 2012-02-25 17:38:12

+0

參見[CanIUse(http://caniuse.com) – Pointy 2012-02-25 17:39:56

回答

27

檢查,爲全球歷史對象的pushState()方法的存在應該是足夠的。

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

對於更一般的HTML 5特性檢測我想看看近代化

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

這將從每個測試的具體凌亂隔離你的代碼,使代碼更易讀,少出錯俯臥。隨着網頁上的近代化腳本,你只是做:

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

日Thnx朋友... :) – 2012-02-26 07:00:40

3

檢查history.pushStatehistory.replaceState對象的存在應該是足夠的,因爲它通常與一般的特徵檢測足夠的檢查功能的對象。

-1

您可以查看天氣或不是一個函數註冊:

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

然後,只需更換//不管你希望做啓用如果它被支持。

0

您可以使用canisuse.js腳本來檢測,如果你的瀏覽器支持的歷史或不

caniuse.history()