IE和JavaScript:重新调整窗口重新加载

时间:2011-05-25 19:12:55

标签: javascript ajax internet-explorer cross-browser

脚本推理: 根据浏览器检测到的宽度和高度重新加载各种CSS脚本。当浏览器调整大小时,窗口重新加载需要重新加载其他JavaScript。

发生的问题: IE喜欢不断循环。

与其他脚本的兼容性: Chrome,FireFox,Safari工作

使用的脚本:

<body onResize="window.location.href = window.location.href;">

请有人提出更好的解决方案或建议!!这必须适用于Safari,IE和FireFox。

可能是基于什么类型的浏览器的逻辑?

以下解决方案(JQUERY):window.resize event firing in Internet Explorer

$(document).ready(function(){

var winWidth = $(window).width(),
winHeight = $(window).height();

$(window).resize(function(){

onResize = function() {
//The method which sets the LEFT css property which triggers 
//window.resize again and it was a infinite loop
setWrapperPosition($mainWrapper.parent());
}

//New height and width
var winNewWidth = $(window).width(),
winNewHeight = $(window).height();

// compare the new height and width with old one
if(winWidth!=winNewWidth || winHeight!=winNewHeight)
{
window.clearTimeout(resizeTimeout);
resizeTimeout = window.setTimeout(onResize, 10);
}
//Update the width and height
winWidth = winNewWidth;
winHeight = winNewHeight;
});
});

2 个答案:

答案 0 :(得分:1)

我会用:

window.location.reload()

重新加载页面。

此外,我不确定onresize是否是受到广泛支持的活动。

相反,我会使用计时器(来源http://jsfiddle.net/ACpTm/4/

来完成

但我真的不会建议任何人因为样式而重新加载页面。这是一种不好的做法,用户不喜欢它,特别是如果它们的带宽有限。

你能描述为什么你需要这样做吗?我们可以提供更多功能的解决方案,而不是这个。

答案 1 :(得分:0)

如果你没有将CSS作为浏览器大小的基础,你会更好。

您可以使用Javascript / jQuery来调整窗口onResize事件中的内容,我过去必须执行此操作并且它运行正常。