【问题标题】:Prevent page reload jQuery from only one page of a website防止页面仅从网站的一页重新加载 jQuery
【发布时间】:2017-05-22 03:06:20
【问题描述】:

我在一个网站上使用这个 jQuery

jQuery(document).ready(function($) {
    var windowWidth = jQuery(window).width();
    jQuery(window).resize(function(){
        if (jQuery(window).width() != windowWidth) {
              windowWidth = jQuery(window).width();
              location.reload();
        }
    });
});

目的是在屏幕尺寸发生变化时重新加载页面。例如,用户在手机上以纵向模式查看它,然后切换到横向模式。

但是我在网站中有一个页面,我不想在调整屏幕大小时重新加载。

【问题讨论】:

    标签: jquery html reload


    【解决方案1】:

    有很多方法可以做到这一点,在我看来最简单的方法是您可以在 window 对象上定义一个 boolean 变量,例如 window.preventReload 不设置为 true 除非在那个特定窗口,并在您的jQuery 代码中在重新加载之前检查它,如下所示:

    jQuery(document).ready(function($) {
        var windowWidth = jQuery(window).width();
        jQuery(window).resize(function(){
            if (window.preventReload !== true && jQuery(window).width() != windowWidth) {
                  windowWidth = jQuery(window).width();
                  location.reload();
            }
        });
    });
    

    【讨论】:

    • 我认为您误解了这个问题。我想完全停止该页面上的重新加载 jquery(即使更改了屏幕大小),但它应该在所有其他页面上保持功能。
    • 不,我想你误解了我的回答 :) 此代码将阻止仅在您将 perventReload 设置为 true 的页面中重新加载,并将在所有其他窗口中重新加载。
    • 看来我理解错了。对不起。那么,您是说我需要在该页面的代码中添加这个 jquery 吗?
    • 不,你把这段代码放在你所有的页面中,就像你通常做的那样,但是在那个特定的页面中只添加这一行:window.preventRelaod = true;
    • 但是我的所有页面中都没有那个 jquery,我不想编辑页面的代码。我正在使用的重新加载 jQuery 来自 custom.js 文件。
    【解决方案2】:

    试试这个:

    这不会为特定页面重新加载。对于所有其他页面,它会重新加载

    function getPageName(url) {
        var index = url.lastIndexOf("/") + 1;
        var filenameWithExtension = url.substr(index);
        var filename = filenameWithExtension.split(".")[0]; // <-- added this line
        return filename;                                    // <-- added this line
    }
    
    jQuery(document).ready(function($) {
        var url = window.location.href;
        var pagename=getPageName(url);
    
        if(pagename!="pagenotreload.html"){
          var windowWidth = jQuery(window).width();
          jQuery(window).resize(function(){
            if (jQuery(window).width() != windowWidth) {
                  windowWidth = jQuery(window).width();
                                location.reload();
            }
          });
        }
    });
    

    【讨论】:

    • 我试过了,但没用。我需要用页面的 url 替换 URL 吗?
    • pagenotreload.html 这将更改为您的页面名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多