如何让JavaScript重定向仅在非stackoverflow域名下生效?
实现仅在非Stack Overflow域名执行的重定向代码
当然可以实现啦!你只需要先判断当前页面的域名是不是Stack Overflow相关的,再决定要不要执行重定向操作就行。
基础版(精准匹配主域名)
如果只需要针对stackoverflow.com这个主域名做判断,直接用window.location.hostname做全等对比就好:
// 判断当前域名不是stackoverflow.com时才执行重定向 if (window.location.hostname !== 'stackoverflow.com') { window.location.href = "http://stackoverflow.com"; }
进阶版(覆盖子域名情况)
要是你想同时排除Stack Overflow的子域名(比如meta.stackoverflow.com这类),可以用includes方法来做模糊判断,这样覆盖范围更全面:
// 检查当前域名不包含stackoverflow.com时执行重定向 if (!window.location.hostname.includes('stackoverflow.com')) { window.location.href = "http://stackoverflow.com"; }
简单解释下:window.location.hostname会返回当前页面的主机名,比如你在Stack Overflow网站上时,它的值就是stackoverflow.com;在其他网站上时,就是对应网站的域名。通过这个条件判断,就能完美实现“仅在非Stack Overflow域名下执行重定向”的需求啦。
内容的提问来源于stack exchange,提问作者Ozik Jarwo
相关产品推荐
相关产品推荐

