jQuery IE9-10:无法获取undefined或null引用的属性替换

我正在开发一个包含以下库的页面;

  • jQuery(1.7.2)(旧版本因为依赖性问题,但已经尝试过1.9.1,并没有解决问题)。
  • 骨干(1.1.0)
  • lodash(2.4.1)
  • modernizr(2.7.1)
  • gsap(1.17.0)

该页面使用canvas和gsap进行动画制作。 在IE11,Chrome,Safari,Firefox和IE8(IE8禁用动画)中一切都很好用,但IE9和10只是在控制台上抛出此错误

无法获取未定义或空引用的属性’replace’

引用的行在jquery.js ,第622行,这是此代码中的return语句:

 // Convert dashed to camelCase; used by the css and data modules // Microsoft forgot to hump their vendor prefix (#9572) camelCase: function( string ) { return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); }, 

我无法弄清楚如何确定我的代码的哪个部分导致这个jQuery代码触发,所以我不确定我的问题可能是什么。

有谁知道解决这个问题? 或者,我如何查看我的代码的哪个部分导致此jquery代码触发(使用IE开发工具)?

事实certificate这个问题并不是IE的本质错误,而是我试图访问一个尚未完全存在的对象。 其他浏览器这不是一个问题(也许他们的JS引擎只是速度足以让它成为一个非问题),但我现在添加了检查以确保在执行有问题的function和问题之前已加载所有相关内容好像都没了。 感谢所有人的帮助。

你用什么样的工具进行调试? 我为Chrome调试控制台提供了解决方案
1.首先在控制台中找到jquery脚本文件,右键单击并选择“Blackbox脚本”,在调试时将忽略它,只会考虑您的文件
2.激活中断错误,并在发生exception的代码行上触发断点
检查JavaScript:有没有办法让Chrome破解所有错误?
和https://developer.chrome.com/devtools/docs/blackboxing

也许我错在这里,但IE8-9“字符串”是否可能是一个保留字? 也许不吧。 但唯一的一次.replace会显示该信息,如果你没有喂它一串。

 camelCase: function( string ) { if(!string){ console.log("string is falsy", string); return string; } return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); },