在javascript中获取浏览器类型

时间:2012-10-10 11:28:05

标签: javascript html5 browser html5-video user-agent

我需要根据浏览器类型加载不同的电影格式。特别是如果用户使用的是Firefox,那么我需要加载.ocv视频。

我尝试过使用:

alert(navigator.appName); 

但这总是会在chrome和firefox中返回'Netscape'吗?

有更好的选择吗?

干杯

5 个答案:

答案 0 :(得分:5)

停止!!! 所有提议的解决方案都是网络破解和破坏的原因!

不要假设一个浏览器,根据你用户代理的名称,可以做某事或不做,只因为它是IE,Firefox或Chrome。 UserAgent可以伪造!手动进行特征检测或使用像Modernizr

这样的完整特征

您想要做的是通过javascript提供。检查浏览器是否可以进行html5视频播放;

var canHtml5Video=function(){
    return !!document.createElement("video").canPlayType;
}

要检查浏览器是否可以播放某种类型(mp4,ogg),请使用音频/视频元素的canPlayType方法。

var elem=document.getElementsByTagName("video")[0];
if (elem.canPlayType("video/mp4")===""){
    //handle firefox and all browser that cant pay the mp4 royality fee
}
else{
    //handle mp4
}

Alternativ,您只需向视频元素添加多个源元素即可。浏览器将选择最适合的内容。

<video>
    <source src="http://....mp4" type="video/mp4" />
    <source src="http://....ocv" type="video/ogg" />
</video>

答案 1 :(得分:1)

尝试     警报(navigator.userAgent的);

有关详细信息:http://www.w3schools.com/js/js_browser.asp

答案 2 :(得分:1)

你想用一些像 this

答案 3 :(得分:0)

使用navigator.userAgent获取浏览器详细信息

if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) {
    // Inside firefox
}

if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) {
    // Inside chrome
}

if (navigator.userAgent.toLowerCase().indexOf("msie") > -1) {
    // Inside IE
}

答案 4 :(得分:-1)

表示ie:

var ie = $.browser.msie;

for firefox:

var mozilla = $.browser.mozilla;

表示chrome:

var chrome = $.browser.webkit && window.chrome;

for safari:

var safari = $.browser.webkit && !window.chrome;