Javascript IE6使用此jQuery崩溃
以下代码每次都会使IE6崩溃。它不断刷新页面,一分钟后崩溃:Javascript IE6使用此jQuery崩溃,javascript,jquery,crash,internet-explorer,window,Javascript,Jquery,Crash,Internet Explorer,Window,以下代码每次都会使IE6崩溃。它不断刷新页面,一分钟后崩溃: $(window).bind("load resize", function () { var hnf = $('#header').height() + $('#footer').height(); $('#main').height($(window).height() - (hnf)); $('.fluid').height($('#main').outerHeight()); $('#conte
$(window).bind("load resize", function () {
var hnf = $('#header').height() + $('#footer').height();
$('#main').height($(window).height() - (hnf));
$('.fluid').height($('#main').outerHeight());
$('#content').width($('#main').width() - $("#aside").width() - 90);
});
是什么引起的
编辑:好的,$(窗口)中的“调整大小”。绑定(“加载调整大小”,函数(){
导致了它,我如何修复
非常感谢您的帮助!即使文档正文尺寸发生更改,IE6也似乎错误地触发了onResize事件
我会寻找一种非jQuery的方式来做你想做的事情。如果你使用CSS来控制页面的固定大小元素,浏览器不会自己处理可变大小的元素吗?即使文档正文尺寸发生变化,IE6也会错误地触发onResize事件。下面是一个例子
我会寻找一种非jQuery的方式来做你想做的事情。如果你使用CSS来控制页面的固定大小元素,浏览器不会自己处理可变大小的元素吗?我想这可能与你试图在没有CSS的情况下设置高度和宽度有关。我不确定,但如果我要这样做,我会ld使用JQUERY.css()方法来设置高度和宽度。所以它看起来像这样
$(window).bind("load resize", function () {
var hnf = $('#header').height() + $('#footer').height();
$('#main').css("height", ($(window).height() - hnf));
$('.fluid').css("height", ($('#main').outerHeight()));
$('#content').css("width", ($('#main').width() - $("#aside").width() - 90));
});
这可能不起作用,我没有测试它。我想这可能与您试图在没有CSS的情况下设置高度和宽度有关。我不确定,但如果我要这样做,我会使用JQUERY.CSS()方法设置高度和宽度。因此,看起来是这样的
$(window).bind("load resize", function () {
var hnf = $('#header').height() + $('#footer').height();
$('#main').css("height", ($(window).height() - hnf));
$('.fluid').css("height", ($('#main').outerHeight()));
$('#content').css("width", ($('#main').width() - $("#aside").width() - 90));
});
这可能不起作用。我没有测试它。修复程序听起来应该起作用。请尝试:
var prevHeight;
$(window).bind("load resize", function () {
var height = $(window).height();
if ( prevHeight == height )
return; // hack to prevent recursion in IE6
prevHeight = height;
// resize content
var hnf = $('#header').height() + $('#footer').height();
$('#main').height(height - (hnf));
$('.fluid').height($('#main').outerHeight());
$('#content').width($('#main').width() - $("#aside").width() - 90);
});
请随意将其修饰一下(将prevHeight附加到其他内容上,等等)。修复程序听起来应该可以工作。尝试:
var prevHeight;
$(window).bind("load resize", function () {
var height = $(window).height();
if ( prevHeight == height )
return; // hack to prevent recursion in IE6
prevHeight = height;
// resize content
var hnf = $('#header').height() + $('#footer').height();
$('#main').height(height - (hnf));
$('.fluid').height($('#main').outerHeight());
$('#content').width($('#main').width() - $("#aside").width() - 90);
});
请随意把它修饰一下(附加上其他东西,等等)。如果每次IE6让我生气时我都有一美元,我会很富有,而且是世界上最愤怒的富人。你会因为这句话得到很多好评。不过我希望我能得到我的解决方案。:)没有XP SP2的情况会发生吗?因为没有XP SP2的IE6在使用jQuery时总是崩溃,所以SP2解决了它。即使它是浏览器错误,您也可以尝试不同版本的jQuery,看看它是否有效。然后,如果您找到一个工作版本,您可以查看源代码,看看是什么引发了IE6中的错误,以及它是如何“修复”或“修复”的“未被工作版本破坏”。这是一个很长的延伸。jQuery的
测试Swarm项目提供了受支持浏览器的测试结果。从此页面选择提交:然后您将看到每个受支持浏览器的每个对应jQuery部件的状态,如下所示:您将找到有关失败的答案(红色标记)对于不同的浏览器,你会知道它是否不仅仅是你的电脑。我想他们只使用最新的浏览器服务包,所以在IE6上可能没有低于SP2的官方测试结果。如果每次IE6让我生气我都有一美元,我会很富有,而且是地球上最愤怒的富人。你会因为这一评论获得很多代表。我希望我能得到更多的支持y解决方案。:)没有XP SP2的IE6会发生这种情况吗?因为没有XP SP2的IE6在使用jQuery时总是会崩溃,所以SP2会解决它。即使是浏览器错误,您也可以尝试不同版本的jQuery,看看它是否有效。然后,如果您找到一个工作版本,您可以查看源代码,看看是什么引发了IE6中的错误,以及它是如何工作的工作版本“已修复”或“未损坏”。这是一个很大的延伸。jQuery的测试Swarm项目
为受支持的浏览器提供测试结果。从此页面选择提交:然后您将看到每个受支持浏览器的每个对应jQuery部件的状态,如下所示:您将找到有关失败的答案(红色标记)适用于各种浏览器,这样您就可以知道它是否不仅仅是您的计算机。不过,我认为他们只使用最新的浏览器服务包,因此IE6上SP2以下的浏览器可能没有官方测试结果。在这种情况下,您将需要更聪明的解决方案…尝试Drew Wills链接到的修复方案。在这种情况下,您将需要更聪明的解决方案…尝试修复方案Drew Wills链接到。谢谢,但我几乎不知道有什么JS可以在我的代码上实现修复。你能帮我一下吗。谢谢!谢谢,但我几乎不知道有什么JS可以在我的代码上实现修复。你能帮我一下吗。谢谢!