跨浏览器兼容性的典型缺陷

时间:2008-09-30 17:35:51

标签: javascript html css cross-browser

主要桌面浏览器中最常见的浏览器兼容性问题是什么?

请不要重复。你遇到的投票问题。我希望列表能够自我排序。 “IE sux”并不是一个陷阱,而是要求进行投票。

[编辑]是的,我知道这是一项民意调查 - 我不会在此发布答案来收集积分 - 我实际上对了解人们通常会遇到什么感兴趣。

10 个答案:

答案 0 :(得分:6)

Internet Explorer 6中的透明PNG,特别是因为使用AlphaImageLoader的常见,无JavaScript的解决方法可能会产生locking up IE6的副作用。

答案 1 :(得分:4)

CSS - 主要在现代浏览器中进行整理,但仍然是一个问题 - 特别是与布局有关。

请注意,这并不重要 - 但这是一个兼容性问题,我几乎总是在设计网站时回归。

答案 2 :(得分:3)

缓存,以及之前的页面哈希。

答案 3 :(得分:2)

内存管理可能是一个问题 - 不同的垃圾收集器会阻塞不同类型的循环引用,尽管firefox在正确清理复杂对象方面非常擅长。

答案 4 :(得分:2)

我发现IE 6对允许的堆栈深度有很小的限制。

有一次,我使用一个很好的递归函数来获取文档中元素的位置:

function getOffsetTop (element) {
    var offset = 0;

    if (element.offsetTop)
        offset = offset + element.offsetTop;

    if (element.offsetParent)
        offset = offset + getOffsetTop(element.offsetParent);   

    return offset;
}

不幸的是,当在非常深的节点层次结构中为元素调用此方法时,IE会抱怨超出最大堆栈大小(我忘记了确切的错误消息)。为了解决这个问题,我需要使用迭代方法来缩小堆栈大小:

function getOffsetTop (element) {
    var offset = 0;

    if (element.offsetTop)
        offset = offset + element.offsetTop;

    var parent = element.offsetParent;
    while (parent) {
        if (parent.offsetTop)
            offset = offset + parent.offsetTop;
        parent = parent.offsetParent;
    }

    return offset;
}

答案 5 :(得分:2)

浮动。 IE6 / 7中有无数的浮动错误 - Peekaboguillotinedouble marginescaping floats3px gapduplicate characters,清除错误的数量,与可用空间相关的错误......

答案 6 :(得分:1)

Quirksmode有很多需要注意的差异清单! - )

- 但他和大多数其他网站和网站上的博客一样,专注于他的方式,这会导致一些轻微或重大的错误和不一致......

答案 7 :(得分:1)

我能想到的最常见的一个 - 这本身就是我本周两次的问题 - 是IE6和盒子模型的错误。抬头看!

具体来说,我正在考虑的问题是当你已经浮动了开发人员认为所有适合包装DIV的DIV时,但他们不会在IE6中因为它们稍大一些。

所以不是三列,你最终得到两个,而你的第三个位于屏幕底部 - 你想要:

   +-------------------------------+
   |+------+ +-----------+ +------+|
   ||      | |           | |      ||
   || foo  | |   bar     | | baz  ||
   ||      | |           | |      ||
   ||      | |           | |      ||
   |+------+ +-----------+ +------+|
   +-------------------------------+

但你得到:

   +-------------------------------+
   |+--------+ +------------+      |
   ||        | |            |      |
   ||  foo   | |    bar     |      |
   ||        | |            |      |
   ||        | |            |      |
   |+--------+ +------------+      |
   |+------+                       |
   ||      |                       |
   ||      |                       |
   || baz  |                       |
   ||      |                       |
   ||      |                       |
   |+------+                       |
   +-------------------------------+

答案 8 :(得分:0)

执行XMLHttpRequest并执行函数'onreadystatechange'时,XMLHttpRequest.responseText属性包含在Firefox中该点加载的数据,但不包含在IE(也可能是Safari)中。

这可以防止在这些浏览器中捕获部分数据,以用于显示执行进度表。

答案 9 :(得分:0)

我创建的每个固定宽度,居中的网站 - 即在某些包含div上使用'margin:0 auto'来使所有内容都集中 - 在我测试它并应用'hack'之前无法在IE6上工作。这让我每次都这样。