如何用单段JavaScript实现多个URL跳转至同一目标地址
Blogspot单段JS实现多URL统一跳转方案
你原有写法的语法问题:缺少逻辑判断运算符、条件括号未闭合,因此无法正常运行。以下提供两种可直接使用的实现,都只需要单个script标签,代码体积小,方便后续新增跳转规则。
方案1:数组匹配(推荐,易维护)
把所有需要跳转的源URL统一存在数组里,判断当前访问地址命中数组内任意地址时,就执行跳转。后续要新增2个、3个甚至更多同目标的源地址,只需要往数组里加对应URL字符串即可,不需要重复写判断逻辑。
代码里用window.location.replace做跳转,会替换浏览器历史记录,避免用户点击返回按钮时重复触发跳转造成死循环,比直接给window.location赋值体验更好。
<script> // 所有需要跳转的源URL统一放在这个数组 const matchUrls = [ 'https://www.example.com/2021/05/test-post.html', 'https://www.example.com/2021/05/test-post.html?m=1' ]; // 统一跳转目标地址 const jumpTarget = 'https://www.website.com/2021/12/official-post.html'; if (matchUrls.includes(window.location.href)) { window.location.replace(jumpTarget); } </script>
方案2:逻辑或判断(适合源URL数量少的场景)
如果只有2-3个源URL需要匹配,也可以直接用逻辑或||把所有判断条件连起来,代码更短:
<script> const currentPage = window.location.href; if ( currentPage === 'https://www.example.com/2021/05/test-post.html' || currentPage === 'https://www.example.com/2021/05/test-post.html?m=1' ) { window.location.replace('https://www.website.com/2021/12/official-post.html'); } </script>
Blogspot部署注意事项
- 把代码粘贴到主题模板的
</head>标签之前即可,不需要拆分多段script,所有指向同一个目标的跳转规则都可以合并在同一段代码里。 - 填写源URL时要和浏览器地址栏显示的内容完全一致,包括协议头(http/https)、www前缀、末尾斜杠、查询参数(比如移动端自动带的
?m=1),否则会出现匹配失败的问题。
内容的提问来源于stack exchange,提问作者ASIF
相关产品推荐
相关产品推荐

