“未捕获(在承诺中)ReferenceError:FILES未定义”(newtab-serviceworker.js)
2019-01-15
1598
我有一个包含 HTML 表单和一些基本 jQuery/AJAX 的页面。没有警告,没有错误,一切都运行正常。但是,当我打开标签时,随着时间的推移,我会收到大量这些错误:
VM15 newtab-serviceworker.js:16
Uncaught (in promise) ReferenceError: FILES is not defined
这是 newtab-serviceworker.js 的开头(包括第 16 行(下面预览中的第 14 行)):
var EXTRA_FILES = ["/xjs/_/js/k=xjs.ntp.en.BHgEJkq1PQM.O/m=sx,jsa,ntp,d,csi/am=AEAMAI5MJQ/rt=j/d=1/rs=ACT90oGgBiwQpyhfkvk6s0qgYagIFi8yXQ",];
var CHECKSUM = "o9h2ps";
var BLACKLIST = [
'/gen_204\?',
'/async/',
'/complete/',
];
var CACHENAME = 'newtab-static-' + CHECKSUM;
self.addEventListener('install', function(event) {
event.waitUntil(caches.open(CACHENAME).then(function(cache) {
return cache.addAll(FILES);
}));
});
这甚至是与代码相关的问题吗?对我来说听起来像是浏览器端的东西。我找不到与此相关的一些信息。
3个回答
这与 Google 的 reCAPTCHA 有关。我将 Google 的 reCAPTCHA v3 添加到我的页面后,我开始在 Chrome 中收到相同的错误。
我唯一注意到的是 reCAPTCHA 过期回调没有调用我的函数,所以这可能与此有关。
否则您可以放心地忽略此错误。
Fluxlicious
2019-01-22
您已定义变量
EXTRA_FILES
:
var EXTRA_FILES = ["/xjs/_/js/k=xjs.ntp.en.BHgEJkq1PQM.O/m=sx,jsa,ntp,d,csi/am=AEAMAI5MJQ/rt=j/d=1/rs=ACT90oGgBiwQpyhfkvk6s0qgYagIFi8yXQ",];
在您的缓存代码中,您确实使用了
FILES
变量:
self.addEventListener('install', function(event) {
event.waitUntil(caches.open(CACHENAME).then(function(cache) {
return cache.addAll(FILES);
}));
});
我想您只需要更正此问题..
André Kelling
2019-01-15
这似乎是一个在您打开新标签页时运行的 Chrome 服务工作线程,快速搜索让我找到了 此处 的源代码。
我在打开新标签页后遇到了同样的问题,在 MacOS 上运行 Chrome 版本 71.0.3578.98。
似乎可以安全地忽略它,并且不会影响您的代码,但我还是向 Chrome 开发人员报告了。希望这只是一个放错位置的变量,他们可以很容易地修复它。
Jake Crouchley
2019-01-22