2012-02-29 21 views
18

संपादित करें मैंने अब कुछ जावास्क्रिप्ट बदल दिया है, इसलिए यदि मुझे एक जावास्क्रिप्ट फ़ंक्शन मिल सकता है जो HTML5 वीडियो समर्थन का पता लगाता है, तो कार्य करना चाहिए।ब्राउज़र कैसे HTML5 का समर्थन करता है या नहीं जांचें?

मेरे पास एक HTML5 वीडियो प्लेयर है जिसमें फ्लैश फ़ॉलबैक है, अगर HTML5 समर्थित नहीं है, तो मैं इसे फ्लैश करने के लिए फ़ॉलबैक करना चाहता हूं। इम वर्तमान में

<!--[if !IE]><!--> then load my custom player else use SWFObject to render it.

क्या यह संभव है का उपयोग कर folllowing करना है:

` If (HTML5 supported browser) { 
<some html and script> (My custom player) 
}else{ 
    <different html and script> (I would call SWFobject here) 
} 
` 

एक अच्छा आसान समाधान विचार को खोजने के लिए कोशिश कर रहा है।

आमतौर पर मैं वीडियो टैग में अतिरिक्त <object> प्राप्त कर पाऊंगा, लेकिन पेज में प्लेयर को डालने के तरीके के कारण यह संभव नहीं होगा।

हालांकि मैं एक संभवतः अविश्वसनीय विधि के साथ HTML5 समर्थन का पता लगा सकते, मैं कैसे समर्थन के उत्पादन के आधार पर मेरी HTML है करने के लिए यकीन नहीं है

+0

वहाँ एक 1 नहीं है: ब्राउज़रों कि एक मनमाना सुविधा एचटीएमएल 5 और एक अन्य मनमाना सुविधा एचटीएमएल 5 परीक्षण में शुरू की 'में पेश किया समर्थन के बीच 1 मानचित्रण navigator.geolocation' यह देखने के लिए कि ब्राउज़र आपके वीडियो का समर्थन करेगा या नहीं, यह एक भयानक विचार है। – Quentin

+0

यही कारण है कि मैं इसका उपयोग नहीं करना चाहता/ – JustAnotherDeveloper

+0

मेरे पास एक ही प्रश्न है यदि किसी को भी उत्तर मिल गया है – Lijo

उत्तर

18

आप http://www.modernizr.com/docs/#features-css

यह पर एक नज़र हुई है सुविधा पहचान

+0

धन्यवाद, मैंने ऐसा करने के लिए एक जेएस विधि बनाई है, लेकिन ऐसा लगता है कि मॉडर्निज़र बस ..... बेहतर – JustAnotherDeveloper

+0

है लेकिन हम इस आधुनिकीकरण का उपयोग कैसे कर सकते हैं आप कुछ उदाहरण कोड – Lijo

+1

@ 404 दे सकते हैं - आधुनिकताएं यहां देखें एचटीएमएल फीचर डिटेक्शन: http://modernizr.com/docs/#features-html5। उदाहरण के लिए, यदि आप यह देखना चाहते हैं कि HTML5 कैनवास समर्थित था या नहीं, तो आप 'if (Modernizr.canvas) {...'आप पुराने ब्राउज़र में एचटीएमएल 5 का मज़ाक उड़ाए जाने के लिए एचटीएमएल 5 शिव को भी देखना चाहते हैं। – JustAnotherDeveloper

4

Dive into HTML5 पर विशेष रूप से 'एचटीएमएल 5 तकनीक का पता लगाने' अनुभाग में सब कुछ देखें। इसमें आपको बहुत कुछ चाहिए जो आपको चाहिए।

8

बेहतर समाधान क्लाइंट-साइड पर अपनी सुविधा का पता लगाने के लिए Modernizr जैसे कुछ का उपयोग करना है। मॉडर्नर एक ओपन सोर्स, एमआईटी-लाइसेंस प्राप्त जावास्क्रिप्ट लाइब्रेरी है जो कई HTML5 & CSS3 सुविधाओं के लिए समर्थन का पता लगाता है। यदि आपका ब्राउज़र कैनवास API का समर्थन नहीं करता है, तो Modernizr.canvas प्रॉपर्टी गलत होगी।

if (Modernizr.canvas) { 
    // let's draw some shapes! 
} else { 
    // no native canvas support available :(
} 

Ref

एक अन्य समाधान अगर आप JQuery का उपयोग कर रहे: HTML के कैनवास तत्व 5

var test_canvas = document.createElement("canvas") //try and create sample canvas element 
var canvascheck=(test_canvas.getContext)? true : false //check if object supports getContext() method, a method of the canvas element 
alert(canvascheck) //alerts true if browser supports canvas element 

Ref

+0

या बोनस अंक के लिए, Modernizr के भीतर YEPNOPE एडिन का उपयोग करें, फिर अगर यह समर्थित नहीं है तो excanvas लोड करें :) – JustAnotherDeveloper

-2

यह इस प्रकार से w3schools करता है के लिए समर्थन के लिए जाँच हो रही है:

function checkVideo() 
{ 
if(!!document.createElement('video').canPlayType) 
    { 
    var vidTest=document.createElement("video"); 
    oggTest=vidTest.canPlayType('video/ogg; codecs="theora, vorbis"'); 
    if (!oggTest) 
    { 
    h264Test=vidTest.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'); 
    if (!h264Test) 
     { 
     document.getElementById("checkVideoResult").innerHTML="Sorry. No video support." 
     } 
    else 
     { 
     if (h264Test=="probably") 
     { 
     document.getElementById("checkVideoResult").innerHTML="Yeah! Full support!"; 
     } 
     else 
     { 
     document.getElementById("checkVideoResult").innerHTML="Meh. Some support."; 
     } 
     } 
    } 
    else 
    { 
    if (oggTest=="probably") 
     { 
     document.getElementById("checkVideoResult").innerHTML="Yeah! Full support!"; 
     } 
    else 
     { 
     document.getElementById("checkVideoResult").innerHTML="Meh. Some support."; 
     } 
    } 
    } 
else 
    { 
    document.getElementById("checkVideoResult").innerHTML="Sorry. No video support." 
    } 
} 
3

लाइनर की जांच एक ...

// Plain JavaScript 
(typeof document.createElement('canvas').getContext === "function") 

// Or... Using lodash 
_.isFunction(document.createElement('canvas').getContext) 
+0

पूरी तरह से काम करता है! – lstefani

संबंधित मुद्दे

 संबंधित मुद्दे