标签: quirks-mode

iframe会以怪癖模式渲染吗?

我正在设置一个页面,并且很难让它在浏览器中看起来很好(实际上只是IE,因为它适用于mozilla和webkit).在认真考虑自IE6以来修复的旧IE错误之前,我想排除怪异模式.容器页面具有声明的doctype,但iframe代码没有.iframe内容是以quirks-mode(因为它没有doctype)还是标准模式(因为容器有doctype)呈现的?来源遵循这个方案:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
...
<body>
...
<iframe ...>
    <html>
    <head>
    ...
    </head>
    <body>
    ....
    </body>
    </html>
</iframe>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

iframe internet-explorer rendering quirks-mode

11
推荐指数
2
解决办法
2万
查看次数

IE中"怪癖模式"和"兼容模式"之间有什么区别?

我以为他们是一回事,只是我发现他们不是!

使用IE8我可以通过3种不同的方式显示相同的网页:

  1. 标准模式.XHTML严格DOCTYPE位于网页的顶部.

  2. 与上面相同,只是在IE8中点击了"兼容模式".现在网页显示有点奇怪.

  3. 如果我从网页中删除DOCTYPE(强制怪癖模式?).现在网页显示非常糟糕,与在"兼容模式"下查看时不同.此时点击'compatibilitybilty mode'没有任何区别.

internet-explorer quirks-mode ie-compatibility-mode

10
推荐指数
1
解决办法
6854
查看次数

IE9在页面底部呈现一条白线

我最近注意到几个网页,以及我自己的一些网页,当它们在Internet Explorer 9中显示时,当它不在Quirks模式时,它会在页面底部呈现一条大约1px的白线.这就像html标签是padding-bottom:1px并包裹在另一个带有白色背景的元素中(但它没有,并且它没有填充).看起来IE9标准和怪癖模式之间的差异在确定包装元素的宽度时会显示,但是在垂直方向上.它也感觉元素的内容被前一个元素推送1px,就像它们的内容一样,但是,不是边距或边框,它们与下一个元素尺寸重叠.

我无法确定究竟是什么原因造成的.有时,一个页面包含2个表,一切都很好.然后你需要添加第三个,然后显示该行.甚至不需要是表btw.

有时候,重置css可以解决它.设置我们在body上链接的相同行高:

body {
    line-height: 1
}
a, links, visited {
    line-height: 1
}
Run Code Online (Sandbox Code Playgroud)

修复它,但并非总是如此.我唯一能做的就是逐个元素检查,禁用/启用它们的css规则直到它消失.

我注意到当有像表,输入,textareas这样的元素时,这个问题更有可能发生.'重置'他们的属性,有时也解决它.

我知道提供代码作为一个例子会更容易,但就像我说的那样,我不能确定它的模式.我可以给你一些网站/网址的例子我注意到这个错误(你必须看看页面的最底部,看看IE和其他浏览器之间的区别,比如Firefox):

casinosdelmundo.info,gatosabido.com.br,espanol.yahoo.com,en.wikipedia.org/wiki/Bruce_Beutler,ea.com/command-and-conquer-4,facebook.com(白色或几乎白色的) bg,用f12,开发人员的工具改变身体背景,你会看到).我在stackoverflow找到了一个例子(因为今天,主页面stackoverflow.com也显示了该行,但是可以改变,因为有时问题出现或在新元素显示或删除时消失):

这个问题有白线: 表格单元格中的链接填充整个行高

这个没有: FireFox 3线高

检查此屏幕截图,如果您仍然没有看到我在说什么: 在此输入图像描述

在已建立的(或非)网站上存在这个问题让我觉得这是一个IE9错误,唯一明确的修复方法总是使用白色背景,所以没有人会注意到白线(尽管这条线仍然存在).但那显然不是最好的选择.我从未在Chrome或Safari中找到此白线.

那么,有没有人遇到同样的问题,并得到了更好的解决方案?

html css quirks-mode internet-explorer-9

10
推荐指数
1
解决办法
3331
查看次数

将元标记放在typo3中的标题部分顶部

为了防止IE9中的怪癖模式,我需要在每个HTML页面的最顶部添加这些行:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Run Code Online (Sandbox Code Playgroud)

不幸的是,typo3将该<meta http-equiv ...行移动到标题部分的末尾,使其无用.

如何告诉tyop3在标头标签后立即放置元标记条目?

typo3 quirks-mode meta-tags typoscript

10
推荐指数
1
解决办法
5295
查看次数

当包含页面处于怪癖模式时,iframe不以ie9模式呈现

我在一个以怪癖模式运行的页面中有一个iframe(我无法控制包含页面),我需要以与现代浏览器功能兼容的模式呈现我的页面.

包含的页面大量使用较新的JavaScript功能(特别是漂亮的数组函数)和SVG渲染.虽然我可以足够轻松地填充数组函数,但我无法强制svg进行渲染.

要清楚,内部页面不是以怪癖模式运行 - 我已经指定了doctype和ie = edge <meta>标记.看起来它正在使用ie8渲染模式(很难确定)

问题的一个示例如下:http://stevesspace.com/quirks/quirks.html - 在chrome中加载以查看预期输出,并在IE9或10中检查实际输出.

编辑:我已经将文档模式和兼容模式添加到示例中,我可以确认它是使用IE8 doc模式.

html javascript iframe quirks-mode internet-explorer-9

10
推荐指数
1
解决办法
9873
查看次数

for-in JavaScript语句中的IE8错误?

我想我已经在IE(IE8)处理for-in javascript语句中发现了一个错误.经过几个小时的煮沸这个小例子后,看起来IE特意在for-in循环中跳过任何名为"toString"的属性 - 无论它是在原型中还是对象的"自有属性".

我把测试代码放在这里:

function countProps(obj) {
    var c = 0;
    for (var prop in obj) {
        c++;
    }
    return c;
}

var obj = {
    toString: function() {
        return "hello";
    }
};

function test() {
    var o = "";
    var d = document.getElementById('output');

    o += "<br/>obj.hasOwnProperty('toString') == " + obj.hasOwnProperty('toString');
    o += "<br/>countProps(obj) = " + countProps(obj);
    o += "<br/>obj.toString() = " + obj.toString();

    d.innerHTML = o;
}
Run Code Online (Sandbox Code Playgroud)

这应该产生:

obj.hasOwnProperty('toString') == true
countProps(obj) = …
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer prototype quirks-mode internet-explorer-8

9
推荐指数
1
解决办法
6043
查看次数

是否有可能强制IE使用IE5怪癖模式?

我有这个问题,并且这其中,也这一个.不幸的是,它似乎不适合我.

我也看过微软的文档,但无济于事.

我尝试过几件事.

我加入<meta http-equiv="X-UA-Compatible" content="IE=5">了我的脑海.我<!DOCTYPE html>在元标记中添加了文档的开头.仍然没有骰子.唯一发生的事情是它进入Document Mode: Quirks:

诡诈的

但是,这不起作用.我的页面坏了.但是当我选择IE5怪癖时:

古怪的5倍!

一切正常.无论什么价值的作品实际呈现页面.

虽然,事情更为离奇的一点点,因为页面的工作就好在Chrome和Firefox浏览器.

哦,哇 显然它适用

IE8标准???

IE8标准.

将其更改为content="IE=8"content="IE=EmulateIE8"似乎也不起作用.

我究竟做错了什么??

html internet-explorer quirks-mode

9
推荐指数
1
解决办法
2427
查看次数

将ASP.NET updatepanel与jQuery UI DatePicker结合使用时出现了奇怪的错误

我创建了一个结合了内联jQuery UI datepicker的页面.当用户单击新日期以更新某些数据时,我不想发起对updatepanel的回调.现在,这个页面有多个updatepanels(不要问:)),所以我需要检查哪个updatepanel重新加载,以便做一些客户端的东西.我正在使用__doPostBack回发并Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, args) {}在更新完成时进行监听.

问题是在FF中,回调告诉我它不是异步操作,我需要检查哪个更新面板将更新设置为null.

我的问题是,这在IE中运行良好,但在任何其他浏览器中都没有,这可能是由两件事造成的:IE进入一个解决问题的怪癖模式(这是我的想法)或IE有某种本机支持对于其他浏览器不知道的updatepanel.

我把问题缩小了,并制作了一个测试页:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Test</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js "></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js "></script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />

    <script type="text/javascript">
        function doAspNetPostback() {
            __doPostBack('<%= hiddenOnSelectionChangedButton.ClientID %>', '');
        }

        $(document).ready(function() {
            /* Create the datepicker */
            buildDatepicker();
            /* Add callback-method for when the scriptmanager finished a request */
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, args) {
                /* Show the panelID …
Run Code Online (Sandbox Code Playgroud)

asp.net ajax jquery quirks-mode

8
推荐指数
1
解决办法
3832
查看次数

强制IE7进入标准渲染模式(不是怪癖)

我在IE7中有显示问题,因为它以怪异模式渲染.我通过显示"document.compatMode"并返回"BackCompat"而不是"CSS1Compat"来确认这一点.使用IE8并恢复到IE7可以正常工作,因为这样可以避免怪癖.在简单的IE8中,我通过使用X-UA-Compatible标头强制渲染模式来修复它,但这对IE7不起作用.其他浏览器也会显示怪癖,但与IE不同,它不会将它们置于伪IE5.5模式,因此它们仍然可以正常渲染.

如何强制IE7在标准渲染模式下渲染而不是怪癖?我已经尝试将DOCTYPE设置为许多不同的选项,我没有添加xml序言.提前感谢您的回复.

rendering quirks-mode internet-explorer-7 webpage-rendering

8
推荐指数
1
解决办法
1万
查看次数

如何在IE 9中为iframe指定doctype的QuirksMode?

题:

我们有一个门户网站,其中doctype与xhtml 1.0兼容.然后,在门户网站中,我们有一个内容iframe,我们嵌入了不同的Web应用程序.其中一些应用程序是由我们编写的,有些是第三方.

现在,在iframe中,我们嵌入了Microsoft Reporting Service报告等.问题是,报告服务报告要求QuirksMode"正确"呈现.并且门户网站在QuirksMode中不起作用(就我而言,这很好,因为我们只针对9,可能还有IE8).门户网站在IE7中也没有正常运行,我们将尽快放弃IE8支持.

但是,IE9似乎从父页面继承了文档模式,因此报告服务报告以IE9标准模式而不是quirks模式呈现.所以所有报告都显示不正确(我并不是说一点点,它真的很严重,完全错误,绝对可怕)

问题是,我们无法更改报告服务...
没有办法使报告服务(任何版本)呈现非quirksmode HTML.

根据Will iframe以怪癖模式渲染? 我可以补充一下

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Run Code Online (Sandbox Code Playgroud)

要在QuirksMode中呈现iframe.(编辑:当我不关心门户网站如何渲染并将其放入其中时甚至不起作用)

不幸的是,门户网站就是说,而不是IE7兼容,所以这不是一个选项.
此外,SSRS报告在除门户网站之外的其他域上运行,因此我无法以任何方式使用JavaScript/jQuery.

有没有办法在QuirksMode中制作iframe渲染,而不破坏父页面布局?
或者(已经存在的)使报告服务呈现有效HTML的方式(我当然没有时间编写自定义HTML呈现扩展)?

html iframe doctype quirks-mode reporting-services

8
推荐指数
1
解决办法
2864
查看次数