Backbone.js Web应用程序在Internet Explorer上无法使用

时间:2012-02-10 22:03:54

标签: javascript internet-explorer internet-explorer-8 backbone.js

我开发了我的网络应用程序,没有在IE上测试它。虽然它在所有浏览器上工作正常。 Chrome,Firefox,Safari但是当涉及到IE时,会有一种奇怪的行为。

有时加载应用程序,有时会加载空白页面,好像没有任何“绑定”事件有效。

应用程序加载的幸运时间,导航面板部分丢失。我现在无法向您展示代码因为我不确定要显示哪个部分以及我在哪里做错了。

如果你们中的任何人都可以向我提供一份检查清单,以及哪些工具适合在IE上进行调试,那就太棒了。

如果你们中的任何人都可以告诉我IE上最常见的backbone.js错误,那么这也会有所帮助。

PS:我测试的IE版本:IE8

4 个答案:

答案 0 :(得分:24)

IE中的一些问题是:

对象上的逗号:

E.g。

 App.model = Backbone.Model.extend({
   url: "/foo/bar",

   validate: function() {
   },
 });

应该是:

 App.model = Backbone.Model.extend({
   url: "/foo/bar",

   validate: function() {
   }
 });

使用IE中不可用的功能,例如lastIndexOf()

要检查的第三件事是HTML无效。 IE可能对您的HTML结构特别挑剔。确保所有打开的代码都有匹配的关闭代码,或者使用/>

自行关闭

如果您使用的是JSON.parse()JSON.stringify()等JSON方法,请确保包含JSON2等JSON库。

答案 1 :(得分:3)

如果您运行的是Windows 7,则应升级到IE9。然后,您可以使用IE开发人员工具来调试您的页面。它类似于使用firebug或webkit开发人员工具。使用IE开发人员工具,您也可以模拟回IE7。

如果您正在运行XP,则应该获得Windows 7,然后升级到IE9。

此外,您应该使用类似es5 shims的内容。这提供了现代浏览器中存在的javascript功能,但不提供旧版本的IE。

答案 2 :(得分:0)

MSIE< 10不支持动态绑定,但它在MSIE 10中工作。 像.show(),. hide()这样的jQuery代码可能在静态绑定中起作用,但是在Backbone的情况下,Node就像使用动态绑定的框架一样工作,模板和其他技术可能无法在它上面工作 MSIE 10将能够抓住它

答案 3 :(得分:0)

我发现你的HTML模板需要格式良好的HTML。 Chrome和Firefox似乎更宽容,但是对于IE 8,包含一个错误会导致显示空白视图。