获取非常奇怪的javascript错误,此页面也拒绝在Internet Explorer 7或8中工作

获取非常奇怪的javascript错误,此页面也拒绝在Internet Explorer 7或8中工作,javascript,internet-explorer,google-maps,Javascript,Internet Explorer,Google Maps,这是我正在处理的页面。。。 其用途通过左侧的说明进行说明。我发现在做了这么多搜索并点击了右侧列表中的很多链接后,页面冻结,Google地图停止工作,Firebug告诉我main.js中有一个错误,它是这样的 b is undefined Line 49 我真的不知道为什么这件事会突然发生,而且这个错误在谷歌的代码中是如此的神秘和混乱,以至于我想我自己也无法解决这个问题 我发现的另一个问题是,页面本身拒绝在IE7和IE8中工作(或者可能是IE的任何版本)。我也不知道如何解决这个问题,因为我

这是我正在处理的页面。。。 其用途通过左侧的说明进行说明。我发现在做了这么多搜索并点击了右侧列表中的很多链接后,页面冻结,Google地图停止工作,Firebug告诉我main.js中有一个错误,它是这样的

b is undefined  
Line 49 
我真的不知道为什么这件事会突然发生,而且这个错误在谷歌的代码中是如此的神秘和混乱,以至于我想我自己也无法解决这个问题

我发现的另一个问题是,页面本身拒绝在IE7和IE8中工作(或者可能是IE的任何版本)。我也不知道如何解决这个问题,因为我不知道如何使用IE的任何调试器(如果他们有调试器的话),也不知道我是如何在两个浏览器中测试并使其工作的(从技术上讲是三个,因为Safari和Chrome一样使用WebKit),我只是没有动力或能力去想象会出什么问题


任何帮助都将不胜感激

IE8在帮助开发人员方面非常好。从内存F12将打开开发者窗口,您可以在其中检查DOM、CSS和调试脚本

您的错误是神秘的,因为大多数javascript都被缩小了,所以变量都被重新映射为单个字母,等等。请查看导致问题的脚本是否有开发(即未统一)版本,因为这将使逐步执行变得更有意义


关于你的具体问题,这听起来像是一个时间问题。如果您遵循标准,浏览器在以一致的方式执行脚本方面做得很好,但它们在执行时间(即执行时间)上确实有所不同。这就解释了为什么b在某些情况下没有定义,而在其他情况下没有定义。

IE8在帮助开发人员方面非常好。从内存F12将打开开发者窗口,您可以在其中检查DOM、CSS和调试脚本

您的错误是神秘的,因为大多数javascript都被缩小了,所以变量都被重新映射为单个字母,等等。请查看导致问题的脚本是否有开发(即未统一)版本,因为这将使逐步执行变得更有意义


关于你的具体问题,这听起来像是一个时间问题。如果您遵循标准,浏览器在以一致的方式执行脚本方面做得很好,但它们在执行时间(即执行时间)上确实有所不同。这就解释了为什么b在某些情况下没有定义,而在其他情况下没有定义。

从注释转移到了答案


正如scunliffe提到的,您正在尝试在不使用jsonp的情况下实现交叉浏览器AJAX。对数据类型
jsonp
使用
$.ajax()
,或者在
$.getJSON()
调用中的URL末尾添加一个
&callback=?

从注释移动到应答


正如scunliffe提到的,您正在尝试在不使用jsonp的情况下实现交叉浏览器AJAX。对数据类型
jsonp
使用
$.ajax()
,或者在
$.getJSON()
调用中的URL末尾添加一个
&callback=?

MS的脚本调试器是janky,但它是免费的,可以在JS中突出显示被破坏的语句:如果您可以捕获Visual Studio的副本,你的情况会更好。在IE中,我从jQuery获得访问错误。。。我猜有人试图运行x域脚本,但失败了?FF对我来说很好,没有错误。实际上我非常喜欢IE8的开发工具集。他们有一个非常好的javascript调试器。在IE8中,点击F12打开开发工具。单击脚本选项卡,然后单击“开始调试”按钮来中断任何JS错误。正如scunliffe提到的,您正在尝试在不使用jsonp的情况下执行交叉浏览器AJAX。用户可以使用数据类型为
jsonp
$.ajax()
,或者在URL的末尾添加一个
&callback=?
。@chetan-你说得对,是因为缺少回调URL参数导致了问题。使用IE8的js调试器,您可以运行以下命令,它将正常工作,而没有回调url parm的相同调用将不会:$.getJSON(“?”,function(){alert(“it worked!”);});MS的脚本调试器是janky,但它是免费的,可以在JS中突出显示被破坏的语句:如果你能捕获Visual Studio的副本,你会过得更好。在IE中,我从jQuery中获得访问错误。。。我猜有人试图运行x域脚本,但失败了?FF对我来说很好,没有错误。实际上我非常喜欢IE8的开发工具集。他们有一个非常好的javascript调试器。在IE8中,点击F12打开开发工具。单击脚本选项卡,然后单击“开始调试”按钮来中断任何JS错误。正如scunliffe提到的,您正在尝试在不使用jsonp的情况下执行交叉浏览器AJAX。用户可以使用数据类型为
jsonp
$.ajax()
,或者在URL的末尾添加一个
&callback=?
。@chetan-你说得对,是因为缺少回调URL参数导致了问题。使用IE8的js调试器,您可以运行以下命令,它将正常工作,而没有回调url parm的相同调用将不会:$.getJSON(“?”,function(){alert(“it worked!”);});出于好奇,URL中的回调变量在做什么?为什么只是一个问号?jQuery将问号替换为它临时创建为回调的随机函数名。这个临时函数调用您的常规回调。出于好奇,URL中的回调变量在做什么?为什么只是一个问号?jQuery将问号替换为它临时创建为回调的随机函数名。该临时函数调用常规回调函数。