
全部分类
14
2025
-
07
语言切换:智能跳转一次 + 记住已跳转标记
用于在支持子域区分语言版本的站点中,实现首次访问时自动跳转到匹配语言版本,并在后续访问中允许用户自由切换语言,不再强制跳转
作者:
来源:
(function smartLangRedirectOnce() {
const REDIRECT_FLAG_KEY = 'lang_redirected';
const DEFAULT_LANG = 'zh';
const DOMAIN_ROOT = 'ceglobal.cn';
const LANGUAGE_DOMAINS = {
zh: 'https://www.ceglobal.cn',
en: 'https://en.ceglobal.cn',
ru: 'https://ru.ceglobal.cn',
es: 'https://es.ceglobal.cn',
};
function getCookie(name) {
const value = ("; " + document.cookie).split("; " + name + "=");
return value.length === 2 ? value.pop().split(";").shift() : null;
}
function setCookie(name, value, days = 365) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/; domain=${DOMAIN_ROOT}; SameSite=Lax`;
}
const currentLang = document.documentElement.lang?.toLowerCase() || DEFAULT_LANG;
const hasRedirected = getCookie(REDIRECT_FLAG_KEY);
if (!hasRedirected) {
const browserLang = navigator.language.toLowerCase();
let matchedLang = DEFAULT_LANG;
Object.keys(LANGUAGE_DOMAINS).forEach(lang => {
if (browserLang.startsWith(lang)) matchedLang = lang;
});
if (matchedLang !== currentLang) {
setCookie(REDIRECT_FLAG_KEY, 'true');
location.href = LANGUAGE_DOMAINS[matchedLang];
} else {
setCookie(REDIRECT_FLAG_KEY, 'true');
}
}
})();
最新消息
07-14
01-04
07-23
06-07
05-11
05-11
08-06
01-11
01-11
01-11
12-19