Mediawiki站点双击单词触发搜索功能失效,如何排查修复?
功能失效核心原因
- 代码中调用的
browser.runtime.sendMessage、browser.tabs.create属于浏览器扩展专属API,仅在浏览器扩展的脚本运行环境中可用,Mediawiki的Common.js运行在普通网页上下文,没有权限调用上述API,逻辑直接中断。 - 代码中定义的
doSearch函数仅完成了声明,没有对应的触发调用逻辑,即使API可用也无法执行搜索逻辑。
修复后可直接部署的代码
document.addEventListener("dblclick", function () { // 获取选中的文本并去除首尾空格 const selectedWord = window.getSelection().toString().trim(); // 校验选中内容长度和非空 if (!selectedWord || selectedWord.length > 70) return; // 清理换行和多余空格 const searchWord = selectedWord.replace(/[\r\n ]+/g, " ").trim(); // 新开标签页打开搜索结果 window.open(`https://lsj.gr/index.php?search=${encodeURIComponent(searchWord)}`, "_blank"); });
生效操作指引
- 将上述代码替换你原来写在Common.js里的错误代码
- 保存修改后清空浏览器缓存,按
Ctrl+F5强制刷新Mediawiki站点页面 - 选中1-70个字符长度的文本双击即可触发搜索,新标签页会直接打开对应搜索结果
内容的提问来源于stack exchange,提问作者greektranslator
相关产品推荐
相关产品推荐

