11571 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous

Dans un fichier xx.js je définis une variable CHANGEEDIT
Dans un fichier yy.js je veux savoir si le fichier xx.js est disponible

Dans le passé, si je voulais tester si une variable n'était pas définie j'écrivais

if(typeof CHANGEEDIT=== 'undefined)


Je constate que si cela fonctionne toujours sous Firefox ce n'est plus le cas sous Chrome
Je reçois le message d'erreur
Uncaught ReferenceError: CHANGEEDIT is not defined

J'ai trouvé un contournement qui ne me satisfait guère
En tête de yy.js j'écris
try {
	var EDITFLAG = CHANGEEDIT;
}
catch(error) {
	var EDITFLAG = false;
}

et dans le corps de ce fichier je teste if(EDITFLAG) chaque fois que je veux savoir si je peux ou non accéder à une fonction définie dans xx.js

Existe-t-il une solution moins lourde à ce problème ?
Merci de votre aide.
Modifié par PapyJP (16 Feb 2026 - 10:11)
Modérateur
Bonjour,

Voici un test avec

var, let, const et Class testés avec typeOf et window.hasOwnProperty() pour voir ce que l'on trouve selon q'une variable est déclarée, définie ou pas.

Bizarrement , dans le codepen typeOf ne lève pas d'erreurs dans chrome : Version 145.0.7632.76 (Build officiel) (64 bits) mais bon, c'est un codepen.

https://codepen.io/gc-nomade/pen/GgqaKRN?editors=1011

Cdt
Modifié par gcyrillus (16 Feb 2026 - 11:42)