2013-03-02 82 views
2

无法检测到浏览器,我想将此作为警告(这是从http://mozilla.github.com/webrtc-landing/一节)检测浏览器的特定功能支持?

<h3 id="gum" style="color: red; display: none;"> 
    mozGetUserMedia is missing, do you have the latest 
    <a href="http://nightly.mozilla.org/">Nightly</a> and set 
    <i>media.navigator.enabled</i> to true? 
    </h3> 
<script> 
if (!navigator.webkitGetUserMedia || !navigator.mozGetUserMedia) { 
    document.getElementById("gum").style.display = "block";} 
</script> 

这在How can I check webRTC datachannel compatibility using JavaScript in client side?讨论,但不同时支持navigator.webkit和MOZ,我应该怎么办呢?

回答

1
if(!(navigator.getUserMedia || navigator.webkitGetUserMedia || 
    navigator.mozGetUserMedia || navigator.msGetUserMedia)) { 
    // getUserMedia is not supported 
} 

改编自Capturing Audio & Video in HTML5

或者

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || 
     navigator.mozGetUserMedia || navigator.msGetUserMedia; 

if (!navigator.getUserMedia) { 
    // getUserMedia is not supported 
} 

回复注释:

var browser = BrowserDetect.browser, 
    version = parseInt(BrowserDetect.version, 10); 

if (!(browser == 'Chrome' && version > 25 || 
    browser == "Firefox" && version > 18)) { 
    // do stuff 
}  

特征检测是优选的浏览器嗅探。

+0

感谢,如果我想要做以下的Firefox等组合: 如果(!BrowserDetect.browser = “铬” || parseInt函数(BrowserDetect.version,10)<26){ $(“#版本“)。显示(); }(BrowserDetect.browser!=“Firefox”|| parseInt(BrowserDetect.version,10)<19){(“#version”)。show();} } – usercode 2013-03-03 00:10:31

+0

它不起作用。不知何故,它忽略。我也试过用jQuery。如果(!(browser =='Chrome'&& version> 25 || browser ==“Firefox”&& version> 18)){(“#version”)。show(); } – usercode 2013-03-03 18:16:58

+0

@Learningtocode。 Chrome稳定版目前是v25,beta版是v26。所以改成例如'browser =='Chrome'&& version> 24'。顺便说一句,不需要parseInt BrowserDetect.version。 – MikeM 2013-03-03 18:45:44