You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

页面点击国家选择按钮后持续刷新问题排查求助

解决落地页选择国家后页面持续刷新的问题

看起来你遇到的无限刷新问题,主要是两个核心原因导致的:URL拼接错误和跳转逻辑在目标页面重复执行,咱们一步步来解决:

问题根源分析

  1. URL拼接错误:你的url变量已经是以/结尾的(http://expatri8.com/),但拼接跳转地址时又额外加了一个/,生成的URL会是http://expatri8.com//UK这种双斜杠格式。浏览器解析后实际会变成http://expatri8.com/UK,但代码判断时会认为当前URL不等于拼接后的URL,于是再次触发跳转,形成循环。
  2. 跳转逻辑全局执行:如果你的目标页面(比如UK/AUS页面)也引入了这段脚本,那么每次加载目标页面时,脚本都会检查Cookie并尝试跳转,这也会导致无限刷新。

修复后的代码

jQuery(document).ready(function () { 
    var baseUrl = 'http://expatri8.com/'; 
    var UK_page = 'UK'; 
    var AUS_page = 'AUS'; 
    var NZ_page = 'NZ'; 
    var ZA_page = 'ZA'; 

    // 仅在落地页执行自动跳转逻辑(判断当前路径是否为根路径)
    if (window.location.pathname === '/') {
        var defaultPage = Cookies.get('default_page');
        if (defaultPage != null) {
            var targetUrl = baseUrl + defaultPage;
            if (window.location.href !== targetUrl) {
                window.location.href = targetUrl;
            }
        }
    }

    // 统一按钮点击逻辑:设置Cookie + 跳转
    jQuery('#set_UK_butt').click(function (e) {
        // 阻止默认行为(如果按钮是a标签的话)
        e.preventDefault();
        Cookies.set('default_page', UK_page, {expires: 999, path: '/'});
        window.location.href = baseUrl + UK_page;
    }); 

    jQuery('#set_AUS_butt').click(function (e) {
        e.preventDefault();
        Cookies.set('default_page', AUS_page, {expires: 999, path: '/'});
        window.location.href = baseUrl + AUS_page;
    }); 

    jQuery('#set_NZ_butt').click(function (e) {
        e.preventDefault();
        Cookies.set('default_page', NZ_page, {expires: 999, path: '/'});
        window.location.href = baseUrl + NZ_page;
    }); 

    jQuery('#set_ZA_butt').click(function (e) {
        e.preventDefault();
        Cookies.set('default_page', ZA_page, {expires: 999, path: '/'});
        window.location.href = baseUrl + ZA_page;
    }); 
});

关键修复点

  • 修正URL拼接:去掉多余的斜杠,直接用baseUrl + defaultPage生成正确的目标URL,避免双斜杠导致的判断错误。
  • 限制跳转逻辑范围:通过window.location.pathname === '/'判断当前是否是落地页,只有在落地页才执行自动跳转逻辑,避免目标页面重复触发跳转。
  • 统一按钮逻辑:给每个按钮添加e.preventDefault()(如果按钮是<a>标签的话,防止默认跳转干扰),并且补全了AUS/NZ/ZA按钮的跳转代码(之前只设置了Cookie没跳转,会导致用户停留在落地页)。
  • 优化Cookie作用域:给Cookie添加path: '/'参数,确保在整个域名下都能访问到这个Cookie,避免不同路径下Cookie无法读取的问题。
  • 替换废弃方法:把jQuery(window).load()换成jQuery(document).ready(),前者已经被jQuery废弃,后者在DOM加载完成后就执行,体验更流畅。

额外测试建议

  • 测试前先清除浏览器对应域名的Cookie,避免旧的错误Cookie影响测试结果。
  • 可以在目标页面检查是否引入了这段脚本,如果有,建议移除或者确保跳转逻辑不会在目标页面触发。

内容的提问来源于stack exchange,提问作者Keith Davis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:49:30