gpt4 book ai didi

jquery - IE 行为不一致 jQuery getScript

转载 作者:行者123 更新时间:2023-12-01 04:20:22 25 4
gpt4 key购买 nike

IE9 中使用 jQuery 时出现一些 ajax 问题。我目前调用 jQuery 的 getScript()来自与 <script> 中的页面一起加载的 JavaScript 文件。这会将一些 JSONP 数据加载到 window对象,然后执行一个函数将其成员解析为 <option>位于 <select> 。 (这在 Chrome 和 Firefox 中一切正常。)

然而,在 IE9 中getScript根本没有回调(甚至明显没有被调用),使页面处于半加载状态。还有一个函数,调用了三个相关的getScript()piGetScripts()我试图在经过一定时间后通过用户单击来调用它,但是单击该元素不会调用它(但会调用其中的任何 alert() )。

奇怪的是,如果我打开 IE JavaScript 控制台,然后再次单击该元素,调用就会成功。从那时起,在后续页面加载时(Ctrl+R),直到浏览器关闭,页面都会正确加载(就像 Chrome 和 Firefox 一样)。如果在控制台打开的情况下加载页面,则调用也会正确发生。

有人遇到过这种情况吗?

我很想找出这种奇怪行为的原因。

最佳答案

根据我自己的评论:

I've seen the behaviour, although it had nothing to do with jQuery. When you call console from JavaScript, then it throws an exception unless you open Developer Tools, which initializes console object and it works afterwards. It might be the case. If you are not using console, then I do not know what's happening (although you may give us some more details: the actual code + jQuery version). Good luck!

看来确实是这样。好的。我想给你一些关于调试的更多建议。您可以(并且应该)创建自己的类来处理调试。例如,这可以是一种选择:

function Debuger() {
var self = this;
self.cache = [];

self.dump = function() {
if (window.console && window.console.log) {
var l = self.cache.length;
for (var i = 0; i < l; i++)
window.console.log.apply(window.console, self.cache[i]);
self.cache = [];
/* We have console, we can deactivate monitor... */
self.deactivate();
/* ...and even redefine log! */
self.log = function() {
window.console.log.apply(window.console, arguments);
};
}
};

self.log = function() {
var args = arguments;
self.cache.push(args);
self.dump();
};

self.monitor_fn = function() {
self.dump();
};

self.activate = function() {
self.monitor = setInterval(self.monitor_fn, 1000);
};

self.deactivate = function() {
clearInterval(self.monitor);
self.monitor = null;
};
}

只需像这样使用它:

debuger = new Debuger();
debuger.activate();
debuger.log('Test');

它应该在任何浏览器下工作(尽管没有测试它),并且如果创建了 console 对象,那么它会将缓存的消息转储给它。显然,您应该根据自己的需要对其进行自定义。

关于jquery - IE 行为不一致 jQuery getScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11159122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com