Blogger移动端分享带?m=1链接问题及桌面适配需求咨询
解决Blogger站点移动端分享带?m=1参数及桌面端自动切换的问题
嘿,针对你Blogger站点遇到的这两个问题,我给你整理了两个实用的解决方案,都是基于模板修改,操作起来不难:
1. 阻止移动端分享时生成带?m=1的链接
Blogger默认会给移动端页面的分享链接加上?m=1参数,我们可以通过两种方式解决:
方法一:修改模板中的分享链接变量
- 登录Blogger后台,进入「主题」→「编辑HTML」
- 按下
Ctrl+F搜索data:post.url(这是默认调用文章链接的变量) - 把所有出现
data:post.url的地方,替换成data:post.url.canonicalcanonical属性会调用文章的标准URL,也就是不带移动端参数的原始链接,这样分享出去的就是干净的地址了
方法二:添加全局JS拦截分享事件
如果找不到分享按钮的代码,或者想覆盖所有分享场景(包括原生系统分享),可以在模板的</body>标签前添加这段代码:
document.addEventListener('DOMContentLoaded', function() { // 处理页面内的自定义分享按钮 const shareButtons = document.querySelectorAll('[data-action="share"], .share-button'); shareButtons.forEach(button => { button.addEventListener('click', function(e) { const cleanUrl = window.location.href.replace(/\?m=1$/, ''); // 更新分享链接 if (this.href) { this.href = this.href.replace(/\?m=1/, ''); } }); }); // 处理移动端原生分享菜单 if (navigator.share) { document.addEventListener('click', function(e) { if (e.target.closest('.share-button')) { e.preventDefault(); navigator.share({ title: document.title, url: window.location.href.replace(/\?m=1$/, '') }); } }); } });
2. 桌面端访问带?m=1的链接时自动切换到桌面版
我们可以通过JS检测用户设备类型,如果是桌面端且URL包含?m=1,就自动重定向到不带参数的版本:
在模板的<head>标签内添加这段代码:
<script type='text/javascript'> // 判断是否为桌面端(可根据你的移动端断点调整宽度阈值) function isDesktopDevice() { return window.innerWidth > 768; } // 检查URL并执行重定向 if (isDesktopDevice() && window.location.href.includes('?m=1')) { const cleanUrl = window.location.href.replace(/\?m=1$/, ''); // 使用replace避免添加历史记录 window.location.replace(cleanUrl); } </script>
另外,你也可以尝试在Blogger后台「设置」→「偏好设置」→「移动端访问」里选择「桌面版」作为默认渲染,但这个设置会强制所有用户打开桌面版,可能影响移动端体验,所以更推荐上面的JS方案,只针对桌面端用户做重定向。
内容的提问来源于stack exchange,提问作者Hamza
相关产品推荐
相关产品推荐

