【问题标题】:JS cross browser inconsistencies/differencesJS跨浏览器不一致/差异
【发布时间】:2011-09-14 20:01:14
【问题描述】:

浏览器之间存在很多 DOM/CSS 不一致。但是浏览器之间有多少核心 JS 差异呢?最近让我感到困惑的是,在 Firefox 中,setTimeout 回调函数传递了一个额外的参数(https://developer.mozilla.org/en/window.setTimeout)。

此外,现在浏览器正在实现新功能(例如 Array.map),如果您尝试编写必须在所有浏览器上运行的代码(甚至回到IE6)。

有没有一个网站可以清晰地组织这些类型的差异?

【问题讨论】:

  • jquery 的一个目的就是架起浏览器之间的差异,给程序员一个独立于浏览器的API。这不是一个答案,而是一个很好的解决方法。此外,请参阅此处了解(一些)差异列表:stackoverflow.com/questions/703993/…
  • @Eran,jQuery 解决 DOM/CSS 的不一致问题远远 解决了语言的不一致问题本身
  • 如果您担心新功能,请在 Google 上搜索“es5 shim”。
  • 这是一个很好的问题,但你不觉得它对于stackoverflow来说可能有点太宽泛了吗?似乎它更像是一个一般性的讨论线程,而不是一个特定的编码问题。
  • @Ben Lee 好吧,有人问我的问题是希望有一个我错过的网站可以说明其中的一些内容,有人可以指出,但如果答案是“好吧,让我们拿出清单”然后我可以同意你的观点

标签: javascript


【解决方案1】:

我发现 QuirksModeWebDevout 拥有关于 CSS 和 DOM 怪癖的最佳表格。您可以使用 jQuery 来弥补这些不兼容性。还有由 Paul Irish 发起的 this great list,它包含了几乎所有你可能需要的 polyfill,包括用于 ES5 方法的 polyfill,例如 Array.map。

【讨论】:

    【解决方案2】:

    似乎没有任何东西可以清楚地概述所有这些问题(实际上非​​常令人惊讶)。如果您使用 jQuery,有一个很好的 browser compatibility doc section 概述了支持的浏览器和已知问题。我只是处理出现的问题(因为无论如何你都应该在所有情况下进行浏览器测试),如果你想确保编码正确或者遇到问题并且需要知道修复,你可以记录它们。当您对特定主题进行快速搜索时,很容易找到问题。

    【讨论】:

      【解决方案3】:

      嗯,我要开个CW:

      【讨论】:

      • 有很多东西,比如很多浏览器都会用到的数组方法。
      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多