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

时间:2020-03-06 14:56:10  来源:igfitidea点击:

在主要的台式机浏览器中,最常见的浏览器兼容性问题是什么?

请不要傻瓜。投票遇到的问题。我希望列表能够自动排序。 " IE sux"不是一个陷阱,而是呼吁下注。

[编辑]是的,我知道这是一项民意测验,我没有在此发布答案,以收集我实际上对了解人们通常会遇到的问题感兴趣的观点。

解决方案

内存管理可能是一个问题,不同的垃圾回收器会阻塞不同类型的循环引用,尽管firefox可以很好地正确清理复杂的对象。

缓存和上一页哈希值。

CSS在现代浏览器中得到了很大的分类,但是仍然是一个问题,特别是在布局方面。

请注意,这并不是很关键,但这是一个兼容性问题,在设计站点时,我几乎总是回到最后。

Internet Explorer 6中的透明PNG,尤其是因为使用AlphaImageLoader的通用的,无需JavaScript的解决方法会产生锁定IE6的副作用。

我发现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;
}

当执行XMLHttpRequest并执行功能" onreadystatechange"时,XMLHttpRequest.responseText属性包含那时在Firefox中加载的数据,但不包含IE(可能是Safari)加载的数据。

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

Quirksmode具有许多差异的综合列表,需要引起注意!-)

-但是,就像网络上的其他大多数网站和博客作者一样,他一直专注于自己的方式,这会导致一些次要或者主要的错误以及不一致的情况...

我创建的每个固定宽度,居中的网站-即在某些包含div的地方使用'margin:0 auto'将所有内容居中-无法在IE6上运行,直到我对其进行测试并应用'hack'。这让我无时无刻不在。

我能想到的最常见的问题-仅是本周两次对我来说就是一个问题-是IE6和Box模型错误。查一下!

具体来说,我要考虑的问题是,当开发人员认为所有浮动DIV都适合包装DIV时,但它们却不在IE6中,因为它们更大了。

因此,我们将得到三列而不是三列,而第三列则位于屏幕底部某处-我们想要:

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

但是你得到:

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

浮游物。 IE6 / 7 Peekabo,断头台,双页边距,转义浮点,3px间距,重复字符,大量清除错误,与可用空间相关的错误有不计其数的浮动错误。