使用JavaScript实现网页文本高亮 Chrome扩展开发localStorage异常求助
排查方向
核心问题:background环境不支持localStorage
Chrome扩展的background脚本(Manifest V3下为service worker类型)不存在localStorage对象,因此你的判断语句if ("undefined" != typeof localStorage)会直接命中undefined,跳过所有后续逻辑。
替换方案:改用Chrome扩展官方存储APIchrome.storage.local,需先在manifest.json的permissions字段添加"storage"权限。未定义变量报错
background.js中使用了未声明的变量showOccurrences,代码执行到该处会直接抛出异常,终止后续逻辑。该变量应为你从存储中读取的numOfWords配置,属于变量名拼写错误。common.js语法错误
loadKeywords函数缺少闭合花括号},语法错误会导致函数加载失败,相关配置无法正常写入存储。高亮逻辑缺陷
content.js的addHighlights函数中,匹配到一个关键词后就返回skip=1,会直接跳过当前文本节点后续的关键词匹配,以及父节点的其他子节点遍历,导致仅能高亮页面中第一个匹配的关键词,甚至完全不生效。manifest配置检查
确认你已经在manifest中正确声明了content脚本的匹配站点规则、必要的权限,若使用Manifest V3,需注意background的配置方式与V2的差异,避免脚本未正常注入。
内容的提问来源于stack exchange,提问作者kevorski
相关产品推荐
相关产品推荐

