开发者问题收集

“未捕获(在承诺中)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