主要桌面浏览器中最常见的浏览器兼容性问题是什么?
请不要重复。您遇到的投票问题。我希望列表能够自我排序。“IE sux”不是一个陷阱,而是呼吁投反对票。
[编辑] 是的,我知道这是一项民意调查——我不会在此发布答案来收集积分——我实际上很想知道人们通常会遇到什么。
主要桌面浏览器中最常见的浏览器兼容性问题是什么?
请不要重复。您遇到的投票问题。我希望列表能够自我排序。“IE sux”不是一个陷阱,而是呼吁投反对票。
[编辑] 是的,我知道这是一项民意调查——我不会在此发布答案来收集积分——我实际上很想知道人们通常会遇到什么。
CSS - 在现代浏览器中大部分被整理出来,但仍然是一个问题 - 特别是与布局有关。
请注意,这并不重要 - 但这是一个兼容性问题,我在设计网站时几乎总是会回到这个问题。
缓存和前一页哈希。
内存管理可能是一个问题——不同的垃圾收集器会阻塞不同类型的循环引用,尽管 Firefox 在正确清理复杂对象方面做得很好。
我发现 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;
}
Quirksmode列出了许多需要注意的不同之处!-)
——但他像网络上的大多数其他网站和博主一样,专注于他的方式,这导致了一些小或大的错误和不一致......
我能想到的最常见的问题——仅本周我就遇到了两次问题——是 IE6 和盒子模型错误。查一下!
具体来说,我正在考虑的问题是,当您浮动 DIV 时,开发人员认为它们都适合包装器 DIV,但它们在 IE6 中不适合,因为它们稍大一些。
所以不是三列,而是两列,第三列在屏幕底部的某个地方——你想要:
+-------------------------------+
|+------+ +-----------+ +------+|
|| | | | | ||
|| foo | | bar | | baz ||
|| | | | | ||
|| | | | | ||
|+------+ +-----------+ +------+|
+-------------------------------+
但你得到:
+-------------------------------+
|+--------+ +------------+ |
|| | | | |
|| foo | | bar | |
|| | | | |
|| | | | |
|+--------+ +------------+ |
|+------+ |
|| | |
|| | |
|| baz | |
|| | |
|| | |
|+------+ |
+-------------------------------+
当执行 XMLHttpRequest 并执行函数“onreadystatechange”时,XMLHttpRequest.responseText 属性包含在 Firefox 中加载的数据,但在 IE(可能还有 Safari)中不包含。
这可以防止在这些浏览器中捕获部分数据以用于显示执行进度表。
我创建的每个固定宽度、居中的站点——即在某些包含 div 的地方使用“margin:0 auto”来使所有内容居中——在我测试它并应用“hack”之前无法在 IE6 上工作。这让我每次。