3
votes

"Uncaught (in promise) ReferenceError: FILES is not defined" (newtab-serviceworker.js)

J'ai une page avec un formulaire HTML et quelques jQuery / AJAX basiques. Aucun avertissement, aucune erreur, tout fonctionne bien. Cependant, lorsque je laisse mon onglet ouvert, je reçois beaucoup de ces erreurs au fil du temps:

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);
  }));
});  

C'est le début de newtab-serviceworker.js (y compris la ligne 16 (14 dans le aperçu ci-dessous)):

VM15 newtab-serviceworker.js:16
Uncaught (in promise) ReferenceError: FILES is not defined

Est-ce même un problème lié au code? Cela me semble être du côté du navigateur. Je n'ai pas pu trouver d'informations pertinentes à ce sujet.


1 commentaires

Vous définissez la variable EXTRA_FILES mais vous utilisez FILES. Remplacez FILES par EXTRA_FILES et actualisez la page :)


3 Réponses :


0
votes

Vous avez défini une variable EXTRA_FILES:

self.addEventListener('install', function(event) {
  event.waitUntil(caches.open(CACHENAME).then(function(cache) {
    return cache.addAll(FILES);
  }));
});  

Dans votre code de mise en cache, vous utilisez la variable FILES :

XXX

Je pense que vous aurez juste besoin de corriger cela ..


7 commentaires

Cela semble raisonnable, mais je n'ai jamais travaillé avec aucune de ces variables. Je n'ai pas non plus implémenté de mise en cache. Je suis confus...


J'ai ajouté vos exemples de code à ma réponse. il devrait donc être plus clair de quels emplacements je veux dire.


Je comprends, mais ce n'est pas un code que j'ai écrit. Il provient du newtab-serviceworker.js, je n'avais jamais entendu parler de ce fichier auparavant. Cela ressemble à un fichier lié au navigateur, c'est pourquoi je suis confus.


ahh .. alors peut-être que ce code est en quelque sorte injecté dans votre build. un package de plugins ou de nœuds aurait pu faire cela. vous ne voulez même pas avoir de technicien de service?


Pour être honnête, j'ai très peu de connaissances sur les travailleurs des services, mais pour autant que je sache, je n'en ai pas besoin dans mon application. Je vais essayer de savoir si un plugin est à l'origine de cela - la page à laquelle je fais référence fait partie d'un site WordPress, donc c'est peut-être ça. Bien que très peu de plugins y soient encore installés, ils sont tous populaires et vérifiés.


est-ce un site public que vous maintenez? pouvez-vous rechercher par un terme dans tous vos fichiers de code?


J'ai le même problème)



0
votes

Il semble que ce soit un service worker Chrome qui s'exécute lorsque vous ouvrez un nouvel onglet, une recherche rapide m'a conduit au code source ici .

Je rencontre le même problème après avoir ouvert un nouvel onglet, exécutant la version 71.0.3578.98 de Chrome sur MacOS.

Cela semble être sûr d'ignorer et ne devrait pas avoir d'incidence sur votre code, mais j'en ai quand même informé les développeurs Chrome. J'espère que ce n'est qu'une variable égarée et qu'ils pourront résoudre le problème assez facilement.


0 commentaires

1
votes

Ceci est lié au reCAPTCHA de Google. J'ai commencé à recevoir la même erreur dans Chrome une fois que j'ai ajouté le reCAPTCHA v3 de Google à ma page.

La seule chose que j'ai remarquée, c'est que le rappel expiré reCAPTCHA n'appelle pas ma fonction, donc cela pourrait être lié.

Sinon, vous pouvez ignorer cette erreur en toute sécurité.


1 commentaires

C'était ça. Le reCAPTCHA v2 produit cette erreur sur mon site. Bien qu'aucune solution spécifique n'ait été fournie, je la marque toujours comme une réponse correcte car c'est la meilleure à ce jour.