我正在尝试修复IE8中javascript的假设错误,以下是我尝试的步骤:
检查chrome / firefox(mac和win)以查看它是否也在那里发生。结果:它只发生在IE8
尝试按照客户端的步骤重现该错误。 IE8中出现了“错误”。
Bug是一个div没有显示,并且javascript错误正在萌芽。我查看了错误并看到了这个:
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)
Timestamp: Fri, 28 Jan 2011 07:32:46 UTC
Message: Syntax error
Line: 70935353
Char: 1
Code: 0
URI: http://edge.foo.dev:3000/
Message: Syntax error
Line: 70935353
Char: 1
Code: 0
URI: http://edge.foo.dev:3000/
好吧不是很有帮助吗?我试图使用萤火虫灯来检查问题所在的位置,现在没有错误......但我的动态div仍未显示。
我正在使用的jquery的东西只是一个ajax调用和数据加载后显示该数据的回调。还有另一种方法可以精确定位错误发生的位置吗?现在我将在每行代码之后添加警报,但调试将非常繁琐。
修改的 我从服务器得到一个响应,这不是一个错误。这是200响应,所以我猜问题在于附加/显示结果?还是在回调期间?
我猜测它使用的插件:http://andreaslagerkvist.com/jquery/live-search/
除非有人能指出我在我的代码中使用了错误的jquery函数/逻辑。
编辑2
好的我正在检查插件并将其指向:
jQuery.get(config.url + q, function (data) {
})
我得到了数据(在firebug lite中并且警报也很好地打印出来)但是
liveSearch.html(data); this FAILS
showLiveSearch(); // this just shows the div
与此相比:
liveSearch.html("<ul><li>blah blah blah</li></ul>"); this SUCCEEDS in showing the div but the error is still there(i can live with that, as long as it shows the results)
showLiveSearch(); // this just shows the div
我尝试了data.toString(),但它仍然没有向我显示服务器返回的html片段。
答案 0 :(得分:2)
很多时候语法错误是由于未正确转义您尝试追加的数据中的引号或撇号而导致的。还要考虑你试图追加的数据可能会破坏HTML,这会破坏IE(ul的ls以外的div等)
答案 1 :(得分:0)
我有同样的问题,并希望分享后代对我有用的东西。我改变了我的电话
$.get("mypage.htm?data1=foo&data2=bar", function(data){alert(data);});
到这个
$.get("mypage.htm", {data1:"foo", data2:"bar"}, function(data){alert(data);});
IE8很喜欢它。