"我想检测各个浏览器是否支持HTML5中的一些元素,不知道怎样检测,要检测的内容就是
http://www.w3.org/TR/html5-diff/#new-elements 上的部分内容,3.1. New Elements那一栏里的,就是不知道如何下手,例如想测是否支持<section>?请求大家帮帮我~"
"这个只能通过最新的HTML5的标准还有各浏览器的支持情况 网上有一个HTML5标准是否支持某一个元素或功能的网站 找找 我之前看过######
用Javascript可以检测,思路是这样的:
在页面创建某个标记(语法正确时总能创建,即使不能被解释),然后检测这个标记的HTML5特有属性特征(不能与HTML4重叠的,否则无法判断了),如果检测到就算有。
比如说创建一个canvas,再检测这个canvas标签是否具有getContext()方法(或属性),因为这个方法不是你手动添加的,而是当浏览器核心具有这种解释能力的时候内部执行构造函数时就具有的,所以就能检测到了。
这里只是一个思路,掌握越多的特征,做的越细致越能检测精确。
当然,还有一个更简单的方法,直接检测浏览器的userAgent,针对已知的浏览器解释能力列表也可以快速检测……人品爆发的时候,比如说遇到IE6了,基本就不用检测了
这里附上一段 http://www.one-lab.net/index.htm的检测canvas的示范代码
function try_canvas() { var canvas = document.createElement("canvas"); var div = document.getElementById("canvas_div"); if (canvas) { if (canvas.getContext) { var context = canvas.getContext("2d"); if (context) { context.globalCompositeOperation = "copy"; canvas.setAttribute("title", "ONE Browser Demo UI"); canvas.setAttribute("id", "canvas_body"); canvas.setAttribute("width", 700); canvas.setAttribute("height", 500); canvas.oncontextmenu = new Function("event.returnValue = false;"); div.appendChild(canvas); setInterval("canvas_animate()", imgAnimationDelay); document.getElementById("canvas_div_inner").style.display = "none"; } } else { document.getElementById("canvas_div_inner").style.display = "block"; } } }
######参考这里吧: http://www.w3cschool.cn/html5_reference.html
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。