【问题标题】:javascript/jQuery function call behaves weird (document.location.reload)javascript/jQuery 函数调用行为怪异(document.location.reload)
【发布时间】:2019-08-24 04:29:26
【问题描述】:

我只想做一个很普通的事情:在调整浏览器窗口大小时让网站重新加载。但是这个函数的行为很奇怪。

在尝试了 javascript 的可能性后,我切换到了 jQuery。没有成功。

我尝试了这两个版本,一个带有“reload”,一个带有“reload()”。

这个只是触发警报而不做任何事情:

$(window).resize(reload);


function reload() {
    document.location.reload(true);
    alert("here");
}

而且那个总是无休止地重新加载:

$(window).resize(reload());


function reload() {
    document.location.reload(true);
    alert("here");
}

在使用 javascript 事件监听器时也会发生无休止的重新加载。

【问题讨论】:

  • $(window).resize(reload()); 正在调用 reload 并将返回的内容分配给事件处理程序.....所以它按设计工作。
  • "make a common thing" ...在调整大小处理程序中重新加载根本不常见....听起来是个坏主意,除非您限制它并等待调整大小以稳定
  • 您看到的循环是由于调整大小触发了多次重新加载...只有在调整大小完成后才能触发它Question 可能会有所帮助。
  • responsive design != reload on resize, fwiw
  • 为什么我使用第一种方法会收到警报?这不是调用函数的不正确方式,因此不会发生任何事情吗?

标签: javascript jquery html reload


【解决方案1】:
<body onresize="reload()">    
<p>A</p>
<script>
    var W = window.outerWidth;
    var H = window.outerHeight;

    function reload() {

        var w = window.outerWidth;
        var h = window.outerHeight;

        if( W != w || H != h ){
            alert('Here');
            window.location.href = window.location.href;
        }
    }
</script>
</body>

【讨论】:

    猜你喜欢
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    相关资源
    最近更新 更多