我已经对IE8的兼容模式,整天打架,我关于它吸住一块砖。

我有一些代码,它用了jQuery 1.2(是的,它是旧的 - 不能改变),来搜索我们的web应用程序的一些记录。搜索的结果可被点击以查看记录的内容(通过使用.animate()它的行下打开的空间中,并创建另一个TR下方和插入HTML从JSON馈送的数据)。

在IE8,点击的结果,以查看该内容强制它在重载兼容模式,其中它适用于所有其他的浏览器(IE7,FF3.0 +,铬,Safari浏览器)的罚款。我一直在尝试使用IE8的开发者工具栏调试和追踪为什么发生这种情况,但我没能找到任何错误或什么可能导致的任何证据。

代码演示预览:

// Code that binds a click to open the result preview:
var _tr = $('<tr class="outline" id=' + val.assessment.assessmentId + '></tr>').bind("click", msi.reuseAssessment.preview);

...

// in msi.reuseAssessment.preview()
var url = "/direct/msi-assessment/" + assessmentId + "/assessmentHtml.json?no-cache=true";
jQuery.ajax({
    type: "GET",
    url: url,
    dataType: "json",
    success: function(d, textStatus){
        var _content = d.assessmentHtml;
        var _preview = $("<tr id=" + assessmentId + "></tr>");

        // loadContent 
        _tr.after(_preview.animate({
            height: 50
        }, 500, 0, function() {
            msi.reuseAssessment.drawPreview(this, _content); // Puts the content from the json into a td
        }));
    },
    error: function(xmlHttpReq, status, errorThrown) {
        // display error msg
    }
});

通过使用IE8的开发者工具调试代码时,它会在这里和到地方传递到jQuery的代码,这时候它在兼容模式下刷新。我已经验证了JSON,HTML代码,与W3C出来,这一切都很好,我真的不知所措到发生了什么。

有谁知道我如何能够更好地追查什么原因引起的,或者我应该只是强制IE7模式在这些网页上?

编辑:搜索是在出现在屏幕的顶部的AJAX“弹出”执行。它的模板(基本HTML)是由一个独立的HTML文件中加载,并在原始页面的底部注入一个div。这意味着将有嵌套的HTML文件(<html></html>标签等)。这是否也有影响吗?点击 编辑3:除去这些重复的标记没有解决该问题

编辑2:仍然没有解决这一点。难道仅仅是那些东西,IE8会显示不正常,并把它归结为浏览器的怪癖吗?我真的很感激一些这方面的帮助。

有帮助吗?

解决方案 3

在一个同事做了一些搜索,以及,我们在这里发现了这个上SO ,在那里它被证实,最大高度是造成IE8中硬断言,证实它确实是,在IE8作为EricLaw一个bug公布。

我们用最大高度为我们将内容输入到该div的风格,进而导致硬断言。上述链接的问题有一个变通为其他任何人遇到此问题。

其他提示

通过的它的力量在兼容模式下重装的你的意思是,你得到一个弹出气球通知,说是这样的:“Internet Explorer中遇到的问题,此页面,并加载它在兼容模式” ?

如果是这样,那意味着你已经打了IE中的一个bug。称为“硬盘断言”则表示该布局引擎崩溃(不是AV或任何刺激,它刚刚进入不可恢复的状态),从而IE尝试通过使用以向用户提供与一些内容较旧的布局引擎。

如果问题仍然出现在IE9,请通过 http://connect.microsoft.com/ie提交错误

谢谢!

你有你的保障和DOCTYPE X-UA-兼容是正确的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

和只是<head>

后添加此
<meta http-equiv="X-UA-Compatible" content="IE=8">
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top