«Uncaught (в обещании) ReferenceError: FILES не определен» (newtab-serviceworker.js) - PullRequest
0 голосов
/ 15 января 2019

У меня есть страница с 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 голосов
/ 22 января 2019

Похоже, что это работник службы Chrome, который запускается при открытии новой вкладки, быстрый поиск привел меня к исходному коду здесь .

Я столкнулся с той же проблемой после открытия новой вкладки и запуска версии Chrome 71.0.3578.98 на MacOS.

Кажется безопасным игнорировать и не должно влиять на ваш код, но я все равно сообщил Chrome Devs. Надеюсь, это просто неверная переменная, и они могут исправить это достаточно просто.

0 голосов
/ 22 января 2019

Это связано с reCAPTCHA от Google. Я начал получать ту же ошибку в Chrome, как только я добавил reCAPTCHA v3 от Google на мою страницу.

Единственное, что я заметил, это то, что функция reCAPTCHA expired-callback не вызывает мою функцию, поэтому это может быть связано.

В противном случае вы можете спокойно проигнорировать эту ошибку.

0 голосов
/ 15 января 2019

Вы определили переменную 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);
  }));
});  

Думаю, вам просто нужно исправить это ..

...