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

网页刷新随机跳转指定页面数组链接,如何避免出现无限循环?

问题原因
  • 现有代码在所有部署了脚本的页面加载完成后都会无条件触发跳转,跳转的目标页面如果也部署了相同脚本,会再次触发跳转逻辑,形成无限循环。
  • 随机选择链接的逻辑没有排除当前页面,可能随机到当前页面地址,导致页面反复自我刷新,也会触发循环。
修复方案

调整逻辑,仅当用户主动刷新当前页面时才触发跳转,同时随机选择链接时排除当前页面,避免重复跳转。以下是修复后的完整代码:

<head>
   <script type="text/javascript">
        // 跳转目标链接数组
        var links = new Array();
        links[0] = "page1.html";
        links[1] = "page2.html";
        // links[2] = "其他页面.html";

        function openLink() {
          // 获取当前页面的文件名
          const currentPage = location.pathname.split('/').pop();
          // 仅当操作类型为刷新时才执行跳转,performance.navigation.type=1代表刷新
          if (performance.navigation.type !== 1) return;
          // 过滤掉当前页面,得到可选的跳转目标列表
          const validLinks = links.filter(link => link !== currentPage);
          if (validLinks.length === 0) return;
          // 随机选择跳转目标
          const i = Math.floor(Math.random() * validLinks.length);
          parent.location = validLinks[i];
          return false;
        }
        </script>
</head>
<body onload="openLink();">
注意事项

如果你的links数组中包含完整域名的链接,需要将当前页面的判断逻辑从匹配文件名调整为匹配完整的location.href即可。

内容的提问来源于stack exchange,提问作者Silver Saarberg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:45:04