Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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
升级到jQuery 1.6.2后,globalEval在尝试在页面上执行javascript时抛出错误_Javascript_Jquery - Fatal编程技术网

升级到jQuery 1.6.2后,globalEval在尝试在页面上执行javascript时抛出错误

升级到jQuery 1.6.2后,globalEval在尝试在页面上执行javascript时抛出错误,javascript,jquery,Javascript,Jquery,我从jQuery1.4.2升级到1.6.2,现在我得到了错误(在IE中)。我在页面上有由jQuery函数执行的JavaScript 在IE中,调用引发异常: “错误:由于错误80020101,无法完成操作。” 执行的数据参数是页面上由 我使用的是IE9,不确定为什么会导致错误 可能是对代码的注释,这是无效的JavaScript和 你可以用这个正则表达式把它去掉 $.globalEval(str.replace(/<!--\s*([\s\S]*?)\s*-->/, '$1'));

我从jQuery1.4.2升级到1.6.2,现在我得到了错误(在IE中)。我在页面上有由jQuery函数执行的JavaScript

在IE中,调用引发异常:

“错误:由于错误80020101,无法完成操作。”

执行的数据参数是页面上由



我使用的是IE9,不确定为什么会导致错误

可能是对代码的注释,这是无效的JavaScript和

你可以用这个正则表达式把它去掉

$.globalEval(str.replace(/<!--\s*([\s\S]*?)\s*-->/, '$1'));
$.globalEval(str.replace(//,“$1”);
.

如果Internet Explorer出现问题,它将报告80020101而不是原始错误

因此,还要检查是否缺少分号和IE不支持的JS功能


对于简短的代码段,我发现最有效的调试技术是注释掉部分代码,看看是否仍然出现错误。如果没有,请检查刚刚注释掉的代码块,查看上面的错误。

只是想补充一点——在包含JavaScript的名为PHP脚本的AJAX中,每当出现错误80020101时,我都会收到错误。PHP文件中的脚本也以某种方式被破坏,拒绝在指定的div中呈现任何脚本(PHP的其他元素通过了,但JavaScript中没有任何内容——我试图使用HighChart绘制图表)

事实证明,包含的PHP文件中的JavaScript中有一个未定义的PHP函数(用于回显某些文本)。我用Firebug找到了这个


总之,确保通过AJAX返回的代码中没有任何未定义的函数

如果删除注释,是否有效?它不是有效的JavaScript。在传递到
$.globalEval()
->
str=str.replace(//,'$1')之前,请尝试在字符串上使用此正则表达式。我也可以把它作为一个答案发布:)看起来在CDATA中包装javscript代码是一种可行的方法,它不会产生像所描述的那样的问题。{code>{foo:'bar'}
是完全有效的,只要它是语法有效表达式的一部分,就不会在IE中抛出错误。
<!-- 
var id = \"ctrl90900\";

var url = \"myur.com/blah.html\";

-->
$.globalEval(str.replace(/<!--\s*([\s\S]*?)\s*-->/, '$1'));