Emacs eww无法加载YouTube搜索结果页面问题求助
Eww谷歌搜索跳转空白缓冲区修复
原因
- Eww作为Emacs内置轻量浏览器,仅支持极基础的JavaScript解析,无法运行现代网站的复杂前端动态逻辑。直接访问
google.com时加载的静态首页内容可以被正常解析,因此显示完全正常;但点击搜索按钮的操作会触发谷歌前端的JS动态表单提交、多步重定向逻辑,这部分逻辑Eww无法识别执行,就会弹出没有任何内容的新缓冲区,只有光标停在起始位置。 - Emacs 28及更早版本自带的Eww模块对POST类型的表单提交存在已知bug,会直接吞掉跳转请求,进一步提升这类空白问题的出现概率。
解决方法
- 最一劳永逸的方案是修改配置,强制谷歌搜索返回无JS的纯静态结果页,绕开首页的动态提交逻辑,把下面的配置加到你的Emacs配置文件里即可:
(setq eww-search-prefix "https://www.google.com/search?hl=en&gbv=1&q=")
配置生效后不用进谷歌首页点搜索框,在Eww模式下直接按s唤起内置搜索框,输入要搜的关键词比如YouTube回车,就能正常加载结果,不会再出空白页。
- 如果你习惯在页面内点按钮提交搜索,先把Emacs升级到29及以上版本,修复Eww的POST表单提交bug。如果点完按钮还是出空白缓冲区,切回之前的谷歌首页缓冲区,复制提交后的目标地址,手动执行
M-x eww粘贴地址打开,就能正常加载内容。 - 临时处理的话,在Eww里执行
M-x eww-toggle-javascript关掉JS解析,页面会自动回退到原生HTML表单提交模式,点击搜索按钮也能正常跳转。
内容的提问来源于stack exchange,提问作者Tanishk Bisht
相关产品推荐
相关产品推荐

