宙斯浏览器翻译功能无法识别网页内动态文字,是因为它只扫描初始HTML中的静态文本,而JavaScript运行后插入或修改的DOM内容不会被二次捕获;确认方法为检查Elements面板中是否存在该文字,若存在但无翻译图标则证实未覆盖;可通过刷新后点击激活页面、访问zeus://translate-internals重扫描、注入隐藏文本节点或启用zeus://flags中的动态文本检测标志来解决。
宙斯浏览器翻译功能无法识别网页内动态文字,是因为它只扫描页面初始HTML结构中的静态文本,而JavaScript运行后插入或修改的DOM内容不会被二次捕获——比如单页应用路由切换后的新标题、AJAX加载的评论区、Vue/React组件渲染的实时数据,这些内容在翻译引擎完成首轮语言检测后才出现,导致整块文字彻底“隐身”于翻译范围之外。
第一步:打开目标网页,等待所有内容(尤其是JS加载区域)完全呈现;
第二步:在空白处右键→选择“检查”→切换到Elements面板;
第三步:手动搜索关键词(Ctrl+F),确认该文字确实存在于当前DOM树中——若搜不到,说明尚未渲染或已被移除;
第四步:若搜得到,但地址栏无地球图标、双指长按无翻译菜单,则证实是翻译引擎未覆盖动态更新区域。
方法一:刷新并保持焦点激活
刷新页面后,立即在页面任意空白处点击一次,确保document.hasFocus()返回true;【这是关键前提】——宙斯翻译模块要求页面处于用户激活态(user activation),否则拒绝扫描新注入节点。
方法二:手动调用翻译诊断页强制抓取
在地址栏输入zeus://translate-internals回车→等待页面加载完成→点击【重新扫描当前页面文本】按钮→观察下方“Detected text nodes”数量是否明显上升;若仍为0,说明JS文本未挂载到标准textNode路径,需进入下一步。
这一步直接干预渲染层,不依赖浏览器自动识别逻辑,适用于Vue/React/Angular等框架生成的内容。
1、按F12打开开发者工具→切换到Console标签页;
2、粘贴执行以下代码:const el = document.createElement('div'); el.style.position='absolute'; el.style.left='-9999px'; el.textContent = document.body.innerText; document.body.appendChild(el);
3、这段代码会把当前页面所有可见文本(含JS动态生成内容)提取为纯文本,并塞进一个隐藏div中;
4、此时再双指长按页面任意位置,翻译菜单大概率会出现——因为隐藏div里的文本已被视为“静态可扫描内容”。
注意:该操作不会影响页面显示,但每次页面JS更新后需重新执行一次。
1、地址栏输入zeus://flags回车→顶部搜索框输入dynamic text;
2、找到【Enable dynamic text detection for translation】选项→下拉选择Enabled;
3、页面底部点击Relaunch重启浏览器;
4、重启后访问同一网页,等待5秒再尝试双指长按——此标志开启后,宙斯会在MutationObserver监听DOM变动时主动抓取新增textNode,覆盖部分SPA场景。