假设您有一个页面具有相对严格的文档类型和HTML标记非常接近合规,但可能会以一些愚蠢的方式错过,可能是因为用户内容无法控制...说您正在处理内容管理系统或内容管理系统的主题,您可以在其中控制一些基本结构并需要一些javascript,但您不对其他所有内容负责.
当浏览器决定进入"怪癖"模式而不是使用更符合标准的引擎时,您如何判断(或:将决定什么)?
我正在为每个主流浏览器寻找答案,因为IE,Chrome,Safari和Firefox当然都会以不同的方式处理.一个单一的错误是否足以迫使它或你有一些余地?
是否可以<div>在标准模式下在JavaScript中设置HTML元素(例如)的宽度或高度?
请注意以下代码:
<html>
<script language="javascript" type="text/javascript">
function changeWidth(){
var e1 = document.getElementById("e1");
e1.style.width = 400;
}
</script>
<body>
<input type="button" value="change width" onclick="changeWidth()"/>
<div id="e1" style="width:20px;height:20px; background-color:#096"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当用户按下更改宽度按钮时,<div>宽度应该改变.
当doctype声明确定Quirks模式时,它工作正常.在标准模式下,我无法通过这种方式更改元素的大小
是否可以在标准模式下操纵元素的大小?如何绕过这种失调?
我正在编写一个在IE7标准模式和IE8标准模式下运行良好的前端.
当我启动Internet Explorer并加载页面时,IE7和IE8都直接进入Quirks模式.如何强制IE7和IE8始终在标准模式下加载页面?
到目前为止,我没有添加任何特殊的元标记.
谢谢你的协助
编辑:我的doctype和head目前看起来如下:
<!DOCTYPE html>
<html lang="de">
<head>
<title>...</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta charset="utf-8" />
<script src="js/html5.js"></script>
(...)
</head>
Run Code Online (Sandbox Code Playgroud) internet-explorer quirks-mode internet-explorer-8 internet-explorer-7 x-ua-compatible
如何强制Internet Explorer 9使用标准文档模式?我建立了一个网站,我发现IE9使用怪异模式来呈现网站页面.但我想使用标准模式进行渲染.
我努力让分选一个非常简单的Web应用程序库的布局,但是当我使用了HTML5 doctype声明,我的一些申报单(这是100%)的高度深究下去缩水,我似乎无法丰满他们使用CSS备份.
我的HTML位于https://dl.dropbox.com/u/16178847/eyewitness/b/index.html,css位于https://dl.dropbox.com/u/16178847/eyewitness/b/style.css
body { height: 100px }和.container { height: 100px }/ .container { height: 100% },它变得可见,但我需要的是它是全高而不是像素的高度.body { height: 100% }照片和页脚div再次不可见.我需要做些什么来使它达到100%的高度,以便我的照片和页脚div是全高?
我有一个页面将包含在页面上的iframe中,他们使用以下内容:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想使用用户正在使用的浏览器可用的最新标准模式来呈现我的页面.这可能吗?
我试过包括
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
Run Code Online (Sandbox Code Playgroud)
在我的页面上,以及改变我的webapp以包含'X-UA-Compatible'HTTP标头,其值为'IE = edge',但我似乎无法让它做我想要的.
奇怪的是,如果我有两个页面,第一个包含iframe,另一个是iframe中显示的内容,如下所示:
<!doctype html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<script>
console.log("Page document mode: "+document.documentMode);
</script>
</head>
<body>
<iframe src="iframepage.html" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和
<!doctype html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script>
console.log("Iframe document mode: "+document.documentMode);
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
输出是相当意外的
Page document mode: 7
Iframe document mode: 8
Run Code Online (Sandbox Code Playgroud)
文档模式8来自何处?如何将iframe文档制作成9或以上?
如果有人能指出我正确的方向,我将永远感激不尽!谢谢,尼克
我在IE9中打开一个网页 - 然后文档模式突然切换到Quirks模式.页面本身很简单 - 没有doctype,没有元标记,只是形成页面的xslt中的一块(测试目的)javascript.
请在同一位置使用提到的xsl 查看http://home.arcor.de/martin.honnen/xslt/test2012041901.xml.为方便起见,我复制了以下内容.
页面内容是
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test2012041901.xsl"?>
<test/>
Run Code Online (Sandbox Code Playgroud)
并且xsl包含
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:my="http://example.com/my"
exclude-result-prefixes="ms my">
<xsl:output method="html" version="5.0"/>
<ms:script language="JScript" implements-prefix="my">
<![CDATA[
function tokenize (input) {
var doc = new ActiveXObject('Msxml2.DOMDocument.6.0');
var fragment = doc.createDocumentFragment();
var tokens = input.split(';');
for (var i = 0, l = tokens.length; i < l; i++)
{
var item = doc.createElement('item');
item.text = tokens[i];
fragment.appendChild(item);
}
return fragment.selectNodes('item');
}
]]>
</ms:script>
<xsl:template match="/">
<html>
<head> …Run Code Online (Sandbox Code Playgroud) 这是整个代码:
<!DOCTYPE HTML>
<html>
<body style="height: 100%; padding: 0; margin: 0;">
<div style="background-color: green; height: 100%; width: 100%"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
什么也没出现.但是,如果我删除第一行(the doctype),则所有页面都是预期的绿色.
我有两个问题:
div在不删除标签的情况下填充页面?doctype它使它工作?我想在C#应用程序中使用IE8作为WebBrowser控件.如何禁用"怪癖模式"并强制IE符合标准(就其实施而言)?
c# standards-compliance webbrowser-control quirks-mode internet-explorer-8
我有一个网页的iframe和iframe中包含需要在怪癖模式下运行的代码(这是微软的Outlook Web Access的,所以它不是我们的代码,我们可以解决反正).IE9引入了一个"功能",当父框架处于IE9文档模式时,它还强制任何iframe进入相同的文档模式.这打破了我们拥有iframe的代码.
我希望这是IE9中的一个错误,但是我的票被拒绝为"按设计"(如果你想看,这里是票)
我无法以怪癖模式运行整个网站,但我只需要在此页面上进行操作.有没有办法以编程方式打开怪癖模式渲染?无论是那种,还是模仿按下"兼容性视图"按钮的方式 - 按下这几乎可以将IE9变成IE8,这也很好用.
可以做这些事情中的任何一个吗?
compatibility internet-explorer quirks-mode ie8-compatibility-mode internet-explorer-9