遵循Chrome扩展教程时遇'Uncaught SyntaxError: missing )'错误求助
解决Chrome扩展中
Uncaught SyntaxError: missing )的问题 看起来你遇到的语法错误虽然指向chrome.storage.sync.get的调用,但大概率不是这段代码本身的问题——你贴出来的两段代码括号都是闭合的,get的两种写法(传字符串键名或数组键名)也都是符合Chrome API规范的。
下面是几个最可能的排查方向,按优先级来:
检查这段代码之前的JS语法:
很多时候,这类“缺失括号”的错误是因为前面的代码有未闭合的结构(比如未闭合的{、(,或者没写完的字符串引号),导致浏览器解析到这段代码时混乱报错。比如如果前面有类似let btn = document.querySelector('#myBtn'(少了闭合括号),或者const message = 'Hello world(少了闭合引号),都会触发后续代码的语法错误。用Chrome开发者工具定位准确的错误行:
打开扩展的弹出页或背景页的开发者工具,看Console里的错误提示,点击错误信息里的行号链接,直接跳转到报错的位置。有时候报错行号会指向你的chrome.storage调用,但实际问题在该行的前几行。隔离测试代码:
暂时把其他JS代码全部注释掉,只保留你修改后的测试代码:chrome.storage.sync.get(['color'], function(data) { console.log('Value currently is ' + data.color); });重新加载扩展,如果错误消失了,就说明是被注释掉的代码里有语法问题,逐段恢复排查即可。
检查扩展Manifest的权限声明:
虽然这个不会导致语法错误,但提前确认一下manifest.json里是否声明了storage权限:{ "permissions": ["storage"] }避免后续运行时出现权限问题。
内容的提问来源于stack exchange,提问作者Umami_The_Fifth




