“未捕获(承诺)ReferenceError:未定义文件”(newtab-serviceworker.js)

时间:2019-01-15 13:07:52

标签: service-worker

我有一个带有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 个答案:

答案 0 :(得分:1)

这与Google的reCAPTCHA有关。将Google的reCAPTCHA v3添加到页面后,我开始在Chrome中收到相同的错误。

我唯一注意到的是reCAPTCHA过期回调未调用我的函数,因此这可能是相关的。

否则,您可以放心地忽略此错误。

答案 1 :(得分:0)

您已定义了变量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);
  }));
});  

认为您只需要纠正此问题即可。

答案 2 :(得分:0)

看起来像是一个Chrome服务工作者,当您打开新标签页时,该服务便在运行,快速搜索将我带到了源代码here

打开新标签页,在MacOS上运行Chrome版本71.0.3578.98后,我遇到了同样的问题。

似乎可以安全地忽略并且不应该影响您的代码,但是无论如何我都已经向Chrome开发人员报告过。希望这只是一个错误放置的变量,他们可以很容易地解决它。