Javascript 如果用户正在使用Chrome,则重定向到其他域
我想将用户重定向到另一个域,但仅当他使用Chrome时。 新域重定向到与旧域相同的服务器。实际上,当用户使用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&
<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!='''''代码>