gpt4 book ai didi

在打开开发工具之前,IE 中的 Javascript 行为不正常 - 与控制台无关?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:07 27 4
gpt4 key购买 nike

我正在尝试解决一个奇怪的 javascript 问题,其中脚本在所有浏览器中都能完美运行 - 除了 IE,但在您打开开发工具时就可以运行。

我搜索了一下,这通常是因为 IE 没有生成控制台对象。但是,代码中没有提到控制台,我已经尝试了 5 种以上不同的代码,显然可以防止这个问题,但无济于事。

如果有人能帮我解决这个问题,我将不胜感激!

代码:

var slide = function slider() {
var i = 0;
var slider = {
loop: function loop(data) {
$.getJSON('?getdata=1', function(data) {
var create = $('<div class="social-area pic">' + '<div class="socimgdiv">' + '<img class="socimg" src="' + data.pic + '">' + '<div class="infotxt">' + data.name + '<br><small>' + data.age + ', ' + data.country + '</small><br>' + '</div></div></div>'),
maxTimeout = 4000,
minimumTimeout = 1000;
$('#box').prepend(create);
$('.social-area').last().fadeOut(400);
setTimeout(function() {
$('.social-area').last().remove();
}, 400);
setTimeout(function() {
$('.pic').animate({
width: 'toggle'
}, 350).removeClass('pic');
}, 400);
i += 1;
if (i >= 5) {
timeouter = Math.floor(Math.random() * maxTimeout);
if (timeouter <= minimumTimeout) timeouter = minimumTimeout;
} else timeouter = 400;
setTimeout(function() {
this.loop();
}.bind(slider), timeouter);
});
}
};
slider.loop();
};
slide();

该脚本从 JSON 提要中收集数据,该提要是通过前面包含的 PHP 脚本生成的:

if(isset($_GET['getdata'])){
echo json_encode(array(
'name' => $name,
'gender' => $gender,
'age' => $age,
'country' => $mycountry,
'pic' => $pic
)); exit;
}

一切正常——在 FF、Chrome、Safari 和 Opera 中完全符合预期——但在未打开开发者工具的 IE 11 中却不行。

大概有一些调用或函数在生成控制台对象之前不起作用,但我不知道它是什么!

最佳答案

这是因为在通过 AJAX 请求请求外部文件时,打开开发者控制台会暂时禁用 IE 11s 缓存机制。

通过添加一个简单的时间戳来解决这个问题,这样请求看起来总是新鲜的:

$.getJSON('?getdata=1&timestamp='+$.now(), function(data) {

为什么你必须这样做,你问?打败我。也许它属于 jQuery 领域。

关于在打开开发工具之前,IE 中的 Javascript 行为不正常 - 与控制台无关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858981/

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