1

我有以下功能来检测支持 HTML5 的浏览器是否可以播放 Mp4 文件类型。

function checkCompat()
{
var vidTag = document.createElement('video');
var support = vidTag.canPlayType('video/mp4');

if (support == '')
{
    showCompatPopup();
}
}

它按预期工作。问题是 IE8 不支持 canPlayType 方法。见 W3Schools

我希望能够在 IE8 和其他可能不支持它并且也不支持 canPlayType 方法的浏览器中检测浏览器的 HTML5 视频标签 Mp4 文件支持。

我同意那里的少数人的观点,即 useragent.indexOf() 之类的东西不够可靠,而且肯定不全面。

我需要将此修复程序作为客户端脚本,因为从光盘运行文件时我也需要这样做。

稍后添加:

此功能似乎在 IE8 中可以正常工作而不会出现错误。谢谢菲利普

var vidTag = document.createElement('video');
if (typeof vidTag.canPlayType == 'undefined') {
alert ("your browser doesn't support HTML5 video - download a better one");
}
else
{
var support = vidTag.canPlayType('video/mp4');
if (support == '')
alert ("HTML5 works on this");
}
4

2 回答 2

4

与其试图找出用户正在使用哪个浏览器,然后将其用作猜测它支持和不支持的基础(每次浏览器更新都会过时的猜测),您应该直接检查是否浏览器知道您需要的功能。

var vidTag = document.createElement('video');
if (typeof vidTag.canPlayType == 'undefined') {
    alert ("your browser doesn't support HTML5 video - download a better one");
}
于 2013-01-01T10:45:39.567 回答
1
<input type="button" value="Show your browser's name" onclick="javascript:alert(window.navigator.appName);" />
<input type="button" value="Show the version of the browser" onclick="javascript:alert(window.navigator.appVersion);" />
<input type="button" value="Show main info" onclick="javascript:alert(window.navigator.userAgent);" />

来源

于 2013-01-01T10:35:08.590 回答