Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery IE9-10:无法获取未定义或空引用的属性替换_Javascript_Jquery_Internet Explorer_Backbone.js - Fatal编程技术网

Javascript jQuery IE9-10:无法获取未定义或空引用的属性替换

Javascript jQuery IE9-10:无法获取未定义或空引用的属性替换,javascript,jquery,internet-explorer,backbone.js,Javascript,Jquery,Internet Explorer,Backbone.js,我正在开发一个包含以下库的页面 jQuery(1.7.2)(由于依赖性问题,较旧版本,但已尝试升级到1.9.1,无法修复该问题) 主干(1.1.0) 洛达斯(2.4.1) 现代化(2.7.1) gsap(1.17.0) 页面使用画布和gsap进行动画。IE11、Chrome、Safari、Firefox和IE8(IE8禁用了动画)中的一切都很好,但IE9和IE10只是在控制台中反复抛出这个错误 无法获取未定义或空引用的属性“replace” 引用的行位于jquery.js的第622行,这是此

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

  • jQuery(1.7.2)(由于依赖性问题,较旧版本,但已尝试升级到1.9.1,无法修复该问题)
  • 主干(1.1.0)
  • 洛达斯(2.4.1)
  • 现代化(2.7.1)
  • gsap(1.17.0)
页面使用画布和gsap进行动画。IE11、Chrome、Safari、Firefox和IE8(IE8禁用了动画)中的一切都很好,但IE9和IE10只是在控制台中反复抛出这个错误

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

引用的行位于
jquery.js
的第622行,这是此代码中的返回语句:

// 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开发工具)?

您使用什么样的工具进行调试?我为您提供了Chrome调试控制台的解决方案
1.首先在控制台中找到jquery脚本文件,右键单击并选择“Blackbox脚本”,调试时将忽略它,只考虑您的文件
2.激活错误中断,将在发生异常的代码行上触发断点
检查

也许我错了,但IE8-9“string”可能是保留字吗?也许不是。但是,唯一的一次.replace会显示消息是,如果您没有向它输入字符串

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

事实证明,这个问题并不是IE固有的问题,而是我试图访问一个还不完全存在的对象。其他浏览器这不是一个问题(也许他们的JS引擎足够快,不成问题),但我现在添加了检查,确保在执行有问题的函数之前加载了所有相关内容,问题似乎消失了。谢谢大家的帮助。

问题只发生在IE中,我甚至不确定jquery代码是否在非IE浏览器中启动(它似乎专门针对IE)。在IE中,您需要开始调试以命中断点。同时查看此url:他收到的错误与您的错误相同。可能相关。您仍然可以激活IE devtools(可从IE8获得)中的“错误时中断”选项。它将在camelCase函数中中断,您可以跟踪stacktrace,从代码中了解调用的位置。我遇到了这个问题。你能详细说明你所说的“检查”吗?@itsmikem主要是类型检查,
if(typeof myVar!='undefined'){…}
我遇到了这样的情况,我当时正在做
$(内存中的某物)。查找(内存中的某物)。在(函数(){return(cond)→this:that}
之后,我不得不定义“this”或“that”之后再打电话。我还认为IE javascript引擎比Chrome慢,因为它在Chrome中运行良好。你的回答真的帮助了我。谢谢