使用JavaScript或jQuery在调整大小时刷新页面

27

我希望在用户调整浏览器大小时,强制刷新页面。我有以下代码:

function refresh() { location.reload(); }

<body onResize="refresh()">

但它不起作用。您们中有人有解决方案吗? 谢谢


3
onresize,而不是onResize。 - JohnFx
这是由Dreamweaver提供的,我不认为它是错误的!但在发布之前,我也测试了"onresize"! - supersize
1
HTML属性不区分大小写。但在JavaScript中,这些属性是小写的。 - Fabrício Matté
从技术上讲,根据Visual Studio(或者也可能是ReSharper)的解析,使用大写字母的HTML属性是“无效的”。实际上并不是这样,但是当它们被大写时,看起来确实相当丑陋。 - Phillip Schmidt
3个回答

70

使用JavaScript / jQuery完成:

仅使用JavaScript:

window.onresize = function(){ location.reload(); }

使用jQuery:

$(window).resize(function(){location.reload();});
或者
$(window).on('resize',function(){location.reload();});

顺便说一下,Vanilla JS是onresize,正如JohnFx之前评论的那样。 - Fabrício Matté
2
工作了,但在火狐浏览器上不行!你知道为什么吗? - supersize
@TedMosby 不对,这很奇怪。我不确定为什么它不起作用。有可能是页面上有另一个 JavaScript 错误,在 Firefox 中出现,并导致此 JavaScript 无法运行。按 F12 并检查控制台窗口以查找错误。 - Phillip Schmidt
好的。我已经有一段时间没有使用原生的JavaScript了。 - Phillip Schmidt
大家好,这是一篇旧帖子,但我还是想写下来。第一个和最后一个版本会导致IE9不断刷新,但中间的那个版本可以正常工作 :) - Alin
显示剩余4条评论

30
以下的代码看起来在所有浏览器中都能正常工作,
$(window).bind('resize', function(e)
{
  if (window.RT) clearTimeout(window.RT);
  window.RT = setTimeout(function()
  {
    this.location.reload(false); /* false to get page from cache */
  }, 100);
});

希望对大家有所帮助。我在这里找到了这些信息:http://www.jquery4u.com/snippets/jquery-refresh-page-browser-resize/


1
谢谢你,伙计。真的帮了我一个大忙... - Anees Hikmat Abu Hmiad
1
在这个上下文中,window.RT是什么意思? - Santosh
关于window.RT的问题,我不太确定。我在提供的链接中找到了解决方案,并且它有效,所以我没有问太多问题。 ;) 我只是分享这个给其他人使用。如果您有特定的代码问题,我建议您参考链接并询问发布者。可能与Windows RT有关,但像我说的那样,我不确定。抱歉我帮不上更多忙。 - JCBrown
似乎这段代码在 window 对象上创建了一个名为 RT 的属性。它用这个属性来检查是否需要在创建新的超时之前清除旧的超时。许多人可能会简单地让它在第一次运行时(默默地)出现错误,但这样做可能更好。 - krowe2
请问您能否友好地向我解释一下这段代码在做什么?这是目前为止唯一有效的变体,但由于我不理解它,所以自己无法想出来。 - Johncowk
setTimeout返回创建的计时器的ID。这个代码变体将该ID保存在属性中,因此如果用户在第一个计时器有机会运行之前调整窗口大小,则同一事件的后续运行将中止现有计时器(clearTimeout)-然后创建新的计时器。当用户完成调整大小时,事件将停止触发并最终调用重新加载。至于RT的含义,也许是重新加载计时器?您可以使用任何您喜欢的属性名称,只要它不是保留的或在其他地方使用过。 - Edelmar Ziegler

4

试试这个:

$(window).resize(function() {
        location.reload();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接