Javascript 如果用户正在使用Chrome,则重定向到其他域

Javascript 如果用户正在使用Chrome,则重定向到其他域,javascript,html,Javascript,Html,我想将用户重定向到另一个域,但仅当他使用Chrome时。 新域重定向到与旧域相同的服务器。实际上,当用户使用chrome时,我只想显示一个不同的域 这就是我想到的: <script>parseInt(navigator.appVersion.match(/.*Chrome\/([0-9\.]+)/)[1]) >= 64 ? document.location = "https://newdomain.com" + window.location.pathname : true&

我想将用户重定向到另一个域,但仅当他使用Chrome时。 新域重定向到与旧域相同的服务器。实际上,当用户使用chrome时,我只想显示一个不同的域

这就是我想到的:

<script>parseInt(navigator.appVersion.match(/.*Chrome\/([0-9\.]+)/)[1]) >= 64 ? document.location = "https://newdomain.com" + window.location.pathname : true</script>
parseInt(navigator.appVersion.match(/.*Chrome\/([0-9\.]+)/)[1])>=64?document.location=”https://newdomain.com“+window.location.pathname:true

这个脚本的问题是,当有人使用chrome并进入我的旧域时,它以重定向循环结束,并且从不停止。有人能帮忙吗?我想我需要以某种方式指定,当用户被重定向到新域时,脚本停止。

您可以传递一个URL参数,该参数将停止重定向循环

”https://newdomain.com“+window.location.pathname+?redirected=true

您可以阅读它并检查它以前是否已重定向

const queryString = window.location.search;
const redirected = new URLSearchParams(queryString).get('redirected');

if (!redirected) {
  // your code for redirection
}

在决定重定向之前,您需要检查浏览器类型和当前主机名,例如

const isChrome = parseInt(navigator.appVersion.match(/.*Chrome\/([0-9\.]+)/)[1]) >= 64

if(isChrome && window.location.hostname != "YOUR_OLD_DOAMINNAME){
   document.location = "https://newdomain.com" + window.location.pathname
}

好的,谢谢各位,现在正在使用以下代码:

const isChrome = parseInt(navigator.appVersion.match(/.*Chrome\/([0-9\.]+)/)[1]) >= 64

if(isChrome && window.location.hostname == "olddomain"){
     var newurl = location.href;
     newurl = newurl.replace(/^.*\/\/[^\/]+/, '')
     document.location = "newdomain" + newurl
}
我现在面临的唯一问题是,它还指导使用microsoft edge的用户,因为它使用的是chrome用户代理。但这并不是什么大问题。 我使用location.href是因为使用location.pathname时它不是完整的url


因此,这段代码现在要做的是,它首先检查用户代理,以及用户是否正在使用Chrome浏览器。然后,它将用户重定向到另一个域,该域指向与旧域相同的主机。用户唯一需要更改的是域。

因此,在重定向…@CBroe之前,只需检查
location.host
location.hostname
包含的内容即可。
navigator.appVersion.match(…)和&location.host!='''''