【问题标题】:IE and JavaScript: window reload on resizeIE 和 JavaScript:调整大小时重新加载窗口
【发布时间】:2011-09-02 01:01:21
【问题描述】:

脚本推理: 根据浏览器检测到的宽度和高度重新加载各种 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;
});
});

【问题讨论】:

  • 缺陷是根据页面大小加载css的设计。
  • Google 搜索“CSS 媒体查询”...
  • 作为替代方案,您可以人为地拆分 CSS 并在大小更改处理程序中的 &lt;body&gt;&lt;html&gt; 上设置一个类。

标签: javascript ajax internet-explorer cross-browser


【解决方案1】:

我会使用:

window.location.reload()

重新加载页面。

另外,我不确定onresize 是否是一个受到广泛支持的事件。

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


但我真的不建议任何人因为样式而重新加载页面。这是一种不好的做法,用户不喜欢它,尤其是在带宽有限的情况下。

您能描述一下为什么您需要这样做吗?我们可以提供更通用的解决方案来代替这个。

【讨论】:

  • 我真的不允许详细介绍,但我正在开展一个项目,在该项目中,统计数据和信息不断地显示在员工的各种分辨率上。人们或近或远。由于显示中的细节,我不能使用 CSS 百分比。人们将在不同的距离使用不同的显示器。
  • 这就是我的意思。您可以在 CSS 中做到这一点,而无需任何类型的 JS 黑客攻击。你能提供一个示例页面吗?
  • 所以你说的是做类似 Joomla 的东西。我不能使用 1-100%。空间非常非常有限,不能用那个。我必须使用 JavaScript。如果你能提供一个例子,我将不胜感激。
【解决方案2】:

如果你的 CSS 不基于浏览器大小,你会做得更好。

你可以使用 Javascript/jQuery 来调整窗口 onResize 事件的大小,我过去必须这样做一次,它工作正常。

【讨论】:

  • 你有解决这个问题的办法吗?还请提供您提到的脚本示例并附上说明。
  • 这个问题不需要像您要求的那样的解决方案。像这样重新加载页面是不好的做法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
相关资源
最近更新 更多