基础URL(首页)重定向代码未执行,控制台输出undefined求助
解决首页重定向不生效的问题
首先,你控制台输出undefined大概率是代码里的拼写错误!你写的window.loca应该是window.location.href吧?访问对象不存在的属性肯定会返回undefined,这直接导致你的判断逻辑根本没跑起来,重定向自然没效果。
接下来,针对你“检查绝对URL”的需求,还要注意首页的两种常见形式——带末尾斜杠和不带(比如http://www.website.com和http://www.website.com/),别因为这个细节导致匹配失败。
给你修正后的完整代码示例:
// 定义首页的两种可能绝对URL const homepageUrls = new Set([ "http://www.website.com", "http://www.website.com/" ]); // 获取当前页面的完整绝对URL const currentUrl = window.location.href; // 判断是否处于首页,是则执行重定向 if (homepageUrls.has(currentUrl)) { // 替换成你实际要跳转的目标URL window.location.href = "http://www.website.com/your-target-page"; }
几个额外的注意事项:
- 确保代码执行时机正确:如果你的代码放在页面
<head>标签里,建议包裹在DOMContentLoaded事件监听中,或者把代码放在<body>标签的末尾,避免页面加载顺序导致的异常:document.addEventListener('DOMContentLoaded', function() { // 上面的重定向代码放在这里 }); - 适配HTTPS场景:如果你的网站已经启用HTTPS,记得把
homepageUrls里的协议改成https://,否则会出现URL不匹配的情况。 - 避免无限循环:一定要确认重定向的目标URL不是首页本身,不然会陷入无限跳转的死循环。
内容的提问来源于stack exchange,提问作者Lieutenant Dan
相关产品推荐
相关产品推荐

