如何在运行kiosk模式的树莓派上禁用Chromium的左滑返回导航功能
可用解决方案
之前方案失效的核心原因
- 仅禁用了触摸板的过滑历史导航,未针对触摸屏做对应配置
- kiosk+隐身模式默认不加载chrome://flags的用户自定义配置,所以手动修改flags不生效
方案1:使用正确的组合启动参数
直接替换原有启动命令为以下内容,同时禁用触摸板和触摸屏的过滑导航:
chromium-browser --noerrdialogs --disable-infobars --kiosk --incognito --disable-pinch --disable-features=TouchpadOverscrollHistoryNavigation,TouchscreenOverscrollHistoryNavigation --overscroll-history-navigation=0 http://localhost
改完重启Chromium即可生效。
方案2:前端页面层面禁用(优先推荐,兼容性最强)
如果访问的localhost页面可以修改,直接在页面全局添加以下配置,从根源拦截触摸滑动返回行为:
- 全局CSS添加:
html, body { touch-action: pan-x pan-y; overscroll-behavior-x: none; }
- 全局JS添加:
document.addEventListener('touchstart', function(e) { if (e.touches.length === 1) { const startX = e.touches[0].clientX; document.addEventListener('touchmove', function onMove(e) { const moveX = e.touches[0].clientX; if (Math.abs(moveX - startX) > 20) { e.preventDefault(); } }, { passive: false }); } }, { passive: false });
该方案不受浏览器启动参数、版本影响,稳定性最高。
方案3:配置Chromium系统级策略(针对无法修改页面的场景)
如果不能修改启动参数也不能调整页面代码,配置全局策略强制禁用该功能:
- 新建策略配置目录:
sudo mkdir -p /etc/chromium/policies/managed
- 新建策略文件:
sudo nano /etc/chromium/policies/managed/disable_overscroll.json
写入以下内容:
{ "OverscrollHistoryNavigationEnabled": false }
- 赋予正确权限:
sudo chmod 644 /etc/chromium/policies/managed/disable_overscroll.json
重启树莓派或Chromium即可生效,该策略优先级最高,所有运行模式下都会生效。
内容的提问来源于stack exchange,提问作者Alessio
相关产品推荐
相关产品推荐

