2012-02-25 9 views
11

क्या ब्राउज़र को जांचने का कोई तरीका है चाहे वह जावास्क्रिप्ट का उपयोग करके 'HTML5 इतिहास API' का समर्थन करता हो।एचटीएमएल 5 इतिहास एपीआई समर्थन के लिए ब्राउज़र संगतता की जांच करें?

क्या मुझे सभी कथन में स्थिति की लंबी सूची के साथ सभी ब्राउज़रों और उसके संस्करणों को जांचना है। या बस समारोह की किसी भी वस्तु की जाँच 'अगर' बयान पर्याप्त ??? है ...

+0

चेक पता लगाने के लिए canisuse.js स्क्रिप्ट का उपयोग कर सकते हैं: http://stackoverflow.com/questions/4708358/detect-whether-html5-history-supported- या नहीं – mariogl

+0

[आधुनिकizr] (http://modernizr.com) में "इतिहास" परीक्षण है। – Pointy

+0

यह भी देखें [CanIUse] (http://caniuse.com) – Pointy

उत्तर

27

वैश्विक इतिहास वस्तु पर pushState() विधि के अस्तित्व की जांच करना पर्याप्त होना चाहिए।

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

अधिक सामान्य एचटीएमएल 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 दोस्त ... :) –

3

history.pushState और history.replaceState वस्तुओं अस्तित्व के लिए जाँच हो रही है, पर्याप्त होना चाहिए के रूप में यह आम तौर पर सामान्य रूप में सुविधा का पता लगाने के साथ पर्याप्त है का उपयोग करना।

-1

आप मौसम या एक समारोह पंजीकृत किया गया है नहीं देख सकते हैं:

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

तो बस की जगह // जो भी आप करना चाहते हैं के साथ सक्षम अगर यह समर्थित है।

0

आप अपने ब्राउज़र के इतिहास या इस पोस्ट का समर्थन करता है नहीं करता है, तो

caniuse.history() 
संबंधित मुद्दे