2016-11-16 117 views
1

我有一个普遍的问题。我正在使用JavaScript编写我的第一个程序,当我在处理它们时,我遇到了一些奇怪的“破碎浏览器”问题。如何处理损坏的浏览器?

在我的程序工作几周内,我经常在不同的浏览器和计算机系统上测试项目。在做这件事时,我观察到Firefox和Chrome在特定版本中的怪异行为。在这两种情况下,这两个浏览器中的程序运行正常,然后突然间,我在一台机器上遇到了Windows上Firefox的Firefox问题。经过一番调查后,我试图更新浏览器,问题消失了。我在Linux上的Chrome上也有同样的体验。它工作得很好,然后我突然遇到了Chrome 48的问题。我在Mac和Windows上测试了这个程序,一切正常。然后我意识到这台机器上的浏览器版本为54.因此,我在Linux机器上更新到最新版本,问题消失了。

我的问题:这种事情是否发生在特定版本的浏览器中,如果是这样的话,如果您正在处理更大的项目,该如何处理?

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

+0

新版本浏览器的支持,例如新的脚本方法,旧版浏览器不支持ECMAScript 6。如果您想支持旧版浏览器的用户,则应确保这些浏览器可以运行代码。 –

+0

问题消失并不一定意味着导致问题的原因也消失了。它仍然可能是你的代码中只有某些浏览器版本或情况下暴露的错误,而不是浏览器导致程序失败的错误。在不知道代码的情况下以及它如何失败的情况下,无法确定问题是您的代码还是浏览器,以及如何处理这些问题。 –

回答

0

你必须阅读关于跨浏览器兼容性。每个浏览器可能具有不同的特定功能的实现,甚至不具有。 对于IE8等较旧的浏览器,甚至更简单的window.innerWidth 不起作用。

jQuery可能会帮助你。它的库有效地为很多情况提供了跨浏览器兼容性。 如果浏览器支持一些功能是使用Modernizr

您也可以手动像caniuse.com网站查询支持测试的另一种方式 - 主要适用于CSS样式也是js的