【问题标题】:How to deal with broken browsers?如何处理损坏的浏览器?
【发布时间】:2016-11-16 15:56:06
【问题描述】:

我有一个一般性问题。我正在编写我的第一个 JavaScript 程序,在编写这些程序时,我遇到了一些奇怪的“浏览器损坏”问题。

在我的程序工作的几周内,我经常在不同的浏览器和计算机系统上测试该项目。在执行此操作时,我在特定版本的 Firefox 和 Chrome 上观察到了奇怪的行为。在这两种情况下,该程序在两种浏览器中都运行良好,然后突然我在一台机器上的 Windows 上的 Firefox 中遇到了问题。经过一番研究,我尝试更新浏览器,问题就消失了。与我在 Linux 上的 Chrome 上的体验相同。它运行良好,然后突然间我遇到了 Chrome 48 的问题。我在 Mac 和 Windows 上测试了该程序,一切都很好。然后我发现这台机器上的浏览器是54版的。所以我在我的Linux机器上更新到最新版本,问题就消失了。

我的问题:在特定版本的浏览器上发生这样的事情是否正常?如果是这样,如果你正在处理更大的项目,如何处理它?

编辑:从下面的答案中,我发现我的问题并不清楚。这个问题实际上并不是关于跨浏览器兼容性,而是更多关于为什么程序在 chrome v47 中工作,而不是在 v48 中,然后它在 v54 中再次工作。 Firefox 和其他浏览器也一样。

【问题讨论】:

  • 较新版本的浏览器支持较新的脚本方法,例如,旧浏览器不支持 ECMAScript 6。如果你想支持旧浏览器的用户,你应该确保有这些浏览器可以运行的代码。
  • 一个问题消失了并不一定意味着导致问题的原因也消失了。仍然可能是您的代码中存在仅在某些浏览器版本或情况下暴露的错误,而不是浏览器有错误导致您的程序失败。在不了解您的代码以及它如何失败的情况下,无法判断问题是您的代码还是浏览器以及如何处理。

标签: javascript browser cross-browser


【解决方案1】:

您必须阅读有关跨浏览器兼容性的信息。 每个浏览器可能有不同的具体功能实现,甚至没有。 对于像 IE8 这样的旧浏览器,甚至更简单window.innerWidth 不工作。

jQuery 可以帮助你。它的库有效地为许多情况提供跨浏览器兼容性。 另一种测试浏览器是否支持某些功能的方法是使用Modernizr

您还可以通过 caniuse.com 等网站手动检查支持 - 主要适用于 css 样式,也适用于 js

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 2013-12-18
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多