众所周知,如果没有条件 javascript 片段形式的帮助,html5 语义标签不会在低于版本 9 的 IE 中优雅地降级。 这意味着使用 IE7 并关闭 javascript 的用户会看到一些丑陋的东西,而不是你闪亮的 html5 网站。
我想到了解决这个问题的方法,并提出了以下方法:在服务器端(例如在 mvc 视图中)有以下内容:
OutputHtml5WithFallback("<header>MyHeader</header>", "<div>MyHeader</div>");
并有一个浏览器嗅探代码来确定请求是来自 IE7 还是 IE8。如果浏览器被识别为 IE7 或 IE8,html 输出将是
<div>MyHeader</div>
除此以外
<header>MyHeader</header>
这似乎是一种防欺骗 - 如果任何浏览器伪装成 IE7,它将收到没有任何 html5 元素的 html5 标记。我最担心的是这种方法可能会被搜索引擎阻止(因为不同的 html 是为不同的用户代理提供的)。
您能否指出我可能遗漏的其他缺陷?