强制浏览器忽略HTML 5功能

Joh*_*ees 3 firefox html5

我有一个遗留网站,可以在FF 3.6,IE 7到8等中正确呈现,但在FF 9中失败.

问题是该站点使用的旧的(HTML 5之前的)第三方JS框架(Woodstock)HIDDEN为某些HTML元素添加了一个属性,所以当我在firebug中查看HTML时,我看到的代码如下:

<table id="foo" hidden="">
Run Code Online (Sandbox Code Playgroud)

这些页面正在提供:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)

这适用于为没有HIDDEN属性的HTML 4设计的浏览器.但支持HTML 5的最新浏览器会解释此属性并隐藏我需要显示的元素.

修改(不支持的)第三方框架以避免使用该HIDDEN属性将非常困难.

是否可以强制浏览器呈现页面,就像它们是HTML 4一样,而不是对HTML 5功能进行任何解释?其他建议欢迎......

Bor*_*sky 6

IE以外的浏览器只实现一个HTML(好吧,除了怪癖模式).

但是,所有hidden属性都会触发UA样式表中的某些样式规则.您可以添加自己的样式规则来覆盖它们.这些规则需要多么复杂取决于框架添加元素的元素,但一种全面的方法是display从HTML5规范或http://mxr.mozilla.org/mozilla-central/source复制各种规则./layout/style/html.css,但涉及的内容除外,hidden只是将它们放在页面链接到的样式表中.