Webflow网站语言跳转代码在编辑器页面异常,如何规避执行?
解决Webflow编辑器页面语言跳转异常问题
嘿,我懂你遇到的糟心事了——Webflow的编辑器页面(URL带?edit参数)会触发你的语言跳转代码,结果把页面后缀拼到带参数的URL后面,搞出your-site.com/?editde.html这种乱七八糟的格式。咱们只需要加个简单的判断,让代码在编辑器页面里“躺平”就行。
这里是修改后的代码,不仅解决了编辑器的问题,还做了几个小优化让逻辑更健壮:
// 先检查是否处于Webflow编辑器页面 const urlParams = new URLSearchParams(window.location.search); if (urlParams.has('edit')) { // 编辑器模式下直接退出,不执行跳转逻辑 return; } // 检测用户浏览器语言(兼容不同浏览器的属性) const userLanguage = window.navigator.language || window.navigator.userLanguage; // 判断是否为德语系(包括de-DE、de-AT等变体) if (userLanguage.startsWith('de')) { // 跳转到德语页面,用origin保证路径正确 window.location.href = `${window.location.origin}/de.html`; } else { // 否则跳转到英语页面 window.location.href = `${window.location.origin}/en.html`; }
几个关键改进点:
- 编辑器页面判断:用
URLSearchParams.has('edit')精准检测URL里的edit参数,比直接字符串匹配更靠谱,能应对参数位置变化的情况 - 语言检测兼容性:用
||合并navigator.language和navigator.userLanguage,覆盖不同浏览器的支持情况 - 更灵活的德语匹配:用
startsWith('de')代替严格等于"de",这样能匹配所有德语区域的语言设置(比如德国的de-DE、奥地利的de-AT) - 避免URL拼接错误:用
window.location.origin来构建目标URL,不管当前页面在哪个路径,都能正确跳转到根目录下的de.html或en.html,不会出现参数和页面后缀混在一起的问题
这样修改后,正常访问页面时会按语言跳转,进入Webflow编辑器(带?edit)时就不会触发跳转了,完美解决你的问题~
内容的提问来源于stack exchange,提问作者Billy Berg
相关产品推荐
相关产品推荐

