浏览器的渲染模式是不是有可能从标准动态更改为怪癖

Posted

技术标签:

【中文标题】浏览器的渲染模式是不是有可能从标准动态更改为怪癖【英文标题】:Is it possible that browser's rendering mode dynamically change from standard to quirks浏览器的渲染模式是否有可能从标准动态更改为怪癖 【发布时间】:2012-02-08 12:48:12 【问题描述】:

假设您有一个以浏览器的标准呈现模式呈现的页面。假设页面上有一个按钮,单击该按钮会下载一组外部 CSS 和 javascript 文件并创建一些 DOM 元素。

是否有可能在按下按钮并下载新的 CSS 和 JavaScript 并创建新的 DOM 后,页面的呈现模式会从标准变为怪异?

【问题讨论】:

【参考方案1】:

简短回答:我不知道。

长答案:您也许可以利用浏览器特定的“功能”并说服浏览器从标准更改为怪癖,但这可能会涉及一些讨厌的黑客攻击和无法维护的编码实践。 W3C 有一个名为 DOMImplementation (link to specification) 的接口,它向 DOM2 添加了一些文档级函数,但至于它们的有效性我不能说。

但是,这个答案的关键在于,您首先应该确切地质疑为什么需要怪癖模式。理想情况下,您应该创建新的 DOM 元素以与标准模式兼容并完全避免整个混乱。考虑到 quirks 模式在浏览器之间可能会有很大差异,最好的办法是针对标准并根据具体情况处理不一致的情况。

【讨论】:

嘿嘿埃里克,谢谢你的回答。实际上,我不需要怪癖模式。我正在创建一个嵌入在主机页面中的网络小部件,其方式与谷歌地图类似。小部件不得以任何方式更改主机页面,这就是为什么我担心例如无效的 DOM 或我的小部件的某些错误可能会使浏览器从标准模式变为怪癖模式。我相信这是不可能发生的,但想与肯定知道这一点的人核实一下。

以上是关于浏览器的渲染模式是不是有可能从标准动态更改为怪癖的主要内容,如果未能解决你的问题,请参考以下文章

在 Chrome、Firefox 和 Safari 中强制标准/怪癖模式?

更改 Domino 生成 HTML 页面的 DOCTYPE

IE 8 渲染怪癖模式

IE 8 下的 box-sizing 和 min-* 属性

动态数据显示 WPF 将 ChartPlotter 的默认行为更改为移动而不是缩放

IE9 - 主页中的怪癖模式和特定 iframe 中的“Internet Explorer 9 标准”