有没有一种方法可以检测浏览器,服务器端对HTML 5的支持并提供不同的标记?

我正在制作一个移动网站,并希望为智能手机用户和功能手机用户提供不同的用户体验。

但是我不想在JavaScript中做任何事情,也不想在功能手机中使用JavaScript,因为它们对JavaScript没有很好的支持。

我正在为智能手机使用一些CSS3效果,这些功能在功能手机上会很好地降低。

主要问题在于HTML5,如果我使用任何HTML5标签,它将在所有支持HTML5的浏览器上运行,并且我将为HTML5标签编写CSS,但是在不支持HTML5的浏览器的手机上布局会受到干扰。

在旧的移动浏览器上,如何像使用CSS一样很好地降级HTML5,而对javascript的支持几乎没有?

在桌面网站中,我们可以使用Javascript HTML Shiv,Modernizer等在不受支持的浏览器上使用HTML 5。移动旧版浏览器中的BUT对JavaScript没有很好的支持,甚至JavaScript也会降低网站的性能,并且加载会很慢,因为智能手机具有3G连接,该连接速度很快,而旧版移动电话则没有。

我可以为支持HTML 5的浏览器提供不同的HTML文件,但是该怎么做呢?

最佳答案

您可以检测到浏览器,并基于此发现它是否支持HTML 5。
例如,您可以检测浏览器是否是IE9,如果它的IE9支持html5

或者你可以这样做
http://geekswithblogs.net/ranganh/archive/2011/03/26/html5-development-with-visual-studio-2010-service-pack-1.aspx
以下是博客摘录

它可以安全地测试浏览器中的功能,而不是简单地进行相应的浏览器检测和渲染。鉴于各种版本的浏览器都支持HTML5 / JavaScript的各种级别,并且仅基于浏览器版本限制功能会错过浏览器实际支持的功能,这一点尤其重要。

以下是用于检查浏览器视频播放功能的代码段



 
 
    视频编解码器检测
 
 
     
    

<script type="text/javascript">

    var player = document.getElementById('myVideo');

    alert("Is <video> supported? " +
        (player.canPlayType != null));

    if (player.canPlayType) {

        alert("Is an unknown format supported? " +
            player.canPlayType('NoWay/VidXF'));

        alert("Is mp4 supported? " +
            player.canPlayType('video/mp4'));

        alert("Is H.264 Baseline supported? " +
            player.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'));
    }
</script>

关于html - 在旧的移动浏览器上,如何像使用CSS一样很好地降级HTML5,而几乎没有javascript支持?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5974826/

10-12 00:08
查看更多