2

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

我试过使用:

alert(navigator.appName); 

但这总是在 chrome 和 firefox 中返回“Netscape”?

有更好的选择吗?

干杯

4

5 回答 5

5

停止!!!所有提出的解决方案都是网络崩溃的原因!

不要假设浏览器,基于您从 userAgent 中正则表达式的名称,可以做某事或不只是因为它是 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>
于 2012-10-10T11:48:10.127 回答
1

尝试警报(navigator.userAgent);

欲了解更多信息:http ://www.w3schools.com/js/js_browser.asp

于 2012-10-10T11:30:46.033 回答
1

你想使用一些 这样的

于 2012-10-10T11:30:56.140 回答
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
}
于 2012-10-10T11:53:03.970 回答
-1

即:

var ie = $.browser.msie;

对于火狐:

var mozilla = $.browser.mozilla;

对于铬:

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

野生动物园:

var safari = $.browser.webkit && !window.chrome;
于 2012-10-10T11:32:46.497 回答