【发布时间】:2012-06-22 15:16:55
【问题描述】:
IE9 中的一些 ajax 问题,使用 jQuery。我目前从与来自<script> 的页面一起加载的JavaScript 文件中调用jQuery 的getScript()。这会将一些 JSONP 数据加载到window 对象,然后执行一个函数以将其成员解析为<option>s 中的<select>。 (这在 Chrome 和 Firefox 中都可以正常工作。)
然而,在 IE9 中,getScripts 根本没有回调(甚至明显被调用),从而使页面处于半加载状态。还有一个函数可以调用三个相关的getScript()s,称为piGetScripts(),我试图在经过一定时间后通过用户单击使其可调用,但是单击此元素不会调用它(但是将调用其中的任何alert()s)。
奇怪,如果我打开 IE JavaScript 控制台然后再次单击该元素,则调用成功。从那时起,在随后的页面加载 (Ctrl+R) 中,直到浏览器关闭,页面才能正确加载(就像 Chrome 和 Firefox 一样)。如果在控制台打开的情况下加载页面,调用也会正确发生。
有人遇到过这种情况吗?
我很想找出这种晦涩行为的原因。
【问题讨论】:
-
我已经看到了这种行为,尽管它与 jQuery 无关。当您从 JavaScript 调用
console时,除非您打开开发者工具,否则它会引发异常,该工具会初始化console对象并在之后工作。可能是这样。如果您没有使用console,那么我不知道发生了什么(尽管您可能会给我们更多细节:实际代码+ jQuery 版本)。祝你好运! -
@freakish 做到了!非常感谢你。这是一个 console.log() 被调用的实例,它一定把一切都搞砸了。不愿意链接到代码,因为它对我工作的人正在为什么客户工作是准敏感的,但试图在没有它的情况下足够彻底地描述设置。但现在已经修好了,我非常感激。
-
我已经发布了一个答案,所以你可以接受它! :D
标签: jquery ajax internet-explorer getscript