Joe*_*orn 127 html browser quirks-mode
假设您有一个页面具有相对严格的文档类型和HTML标记非常接近合规,但可能会以一些愚蠢的方式错过,可能是因为用户内容无法控制...说您正在处理内容管理系统或内容管理系统的主题,您可以在其中控制一些基本结构并需要一些javascript,但您不对其他所有内容负责.
当浏览器决定进入"怪癖"模式而不是使用更符合标准的引擎时,您如何判断(或:将决定什么)?
我正在为每个主流浏览器寻找答案,因为IE,Chrome,Safari和Firefox当然都会以不同的方式处理.一个单一的错误是否足以迫使它或你有一些余地?
Chr*_*nce 156
在Firefox和Opera中,您可以通过检查页面信息来确定您的浏览器是否处于"怪癖模式".
使用document.compatMode,将告诉您大多数浏览器的模式.
在Chrome,Safari和IE中,在地址栏中运行此javascript:
 javascript:window.alert('You are in ' + (document.compatMode==='CSS1Compat'?'Standards':'Quirks') + ' mode.')
(请注意javascript:,由于最近的安全性更改,您需要在粘贴到地址栏后重新键入该部分)
Dav*_*ebb 19
由于您可以在JavaScript中查询渲染模式,因此可以使用Bookmarklet来告诉您页面使用的渲染模式.
我发现这个渲染模式bookmarklet适用于我:
javascript:m=(document.compatMode=='CSS1Compat')?'Standards':'Quirks';window.alert('You%20are%20in%20'%20+%20m%20+%20'%20mode.');
Ste*_*ike 11
对你的实际具体问题的完整答案是"一个单一的错误是否足以迫使它或你有一些回旋余地?" 是完全取决于错误.例如,
<!-- Comment -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
尽管没有真正出现错误,它们将强制在IE 6和7中使用怪癖模式(当文件的第一行不是声明时,它们只会完全抖动).可以在此处找到类型/怪癖的快速列表
尝试在HTML中粘贴以下行进行测试(非常糟糕的javascript行为我在这里传递 - 抱歉...确保这个从未上线:)
<a href="javascript:alert(document.compatMode);">What mode am I?</a>