Chargement du contenu d'un script "dynamique" dans le head d'un fichier.
Erreur en console avec laquelle je bataille, en outre l'argument reste undefined dans l'URL du script alors qu'il est véhiculé !
Amitiés,Uncaught TypeError: Cannot read properties of null (reading 'classList') at HTMLDocument.onDocumentLoad (VM6:647:19)
Code fichier "000 Test.html"
Code : Tout sélectionner
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<title>Demande fichier HTML 18/10/2024</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script>
function updateScript() {
let date = new Date();
// Formater le mois pour qu'il ait toujours deux chiffres
let month = (date.getMonth() + 1).toString().padStart(2, "0");
// Demander à l'utilisateur le nouveau chemin du fichier, avec le chemin actuel comme valeur par défaut
let newSel = prompt("slectionner année et mois de l'albumHTML :", date.getFullYear() + "-" + month);
// Pour ouverture directe dans arborescence de menuW3C.htm
self.location.href = "001 Test?" + newSel + ".htm";
}
</script>
</head>
<body>
<button onclick="updateScript()">AlbumHTML Concerné :</button>
</body>
</html>
Code : Tout sélectionner
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<title>Fichier HTML à charger 18/10/2024</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- ============================================================================== -->
<!-- == Chargement fichier POIs_Tout_GPX.js contenant une base de coordonnées == -->
<!-- ============================================================================== -->
<!-- <script src="../CD Vacances 2024-06/AlbumHTML/POIs_Tout_GPX.js"></script> -->
<!-- ============================================================================== -->
<!-- ============================================================================== -->
<script>
// Créer un script dynamique dans head fonction d'un argument dans l'Url
function ExtraireParam() {
url = window.location.href;
var exp = new RegExp("[&?]+", "g");
var exp2 = new RegExp("[=]+", "g");
var tabNom = url.split(exp);
var tabParam = new Array();
if (tabNom != null) {
for (var i = 1; i < tabNom.length; i++) {
var tabTemp = tabNom[i].split(exp2);
tabParam[tabTemp[0]] = tabTemp[1];
}
}
return tabParam;
}
// Appel de la fonction et création du tableau des paramètres
let MyUrl = "";
var urlParam = ExtraireParam();
// Récupérer répertoire et informations voulues dans parametre des url
// Attendu date AAAA-MM exemple 2024-10 ou autre
MyUrl = urlParam["TraceGPX"];
if (MyUrl === null || MyUrl === undefined) {
// self.location.href = "000 Test.htm";
// Test provisoire à défaut de revenir sur fichier 000 Test.htm
MyUrl = "2024-06";
}
// Créer dynamiquement le script avec le chemin correct
document.addEventListener("DOMContentLoaded", function () {
let script = document.createElement("script");
script.id = "MaCarte";
script.src = "../CD Vacances " + MyUrl + "/AlbumHTML/POIs_Tout_GPX.js";
// Ajoutez un écouteur d'événements pour vérifier quand le script est chargé
script.onload = function () {
let element = document.querySelector("#MaCarte"); // Remplacez par votre sélecteur
if (element) {
// Ajoutez la classe sans le # malgré id
element.classList.add("MaCarte");
} else {
console.error("L'élément cible n'existe pas.");
}
};
document.head.appendChild(script);
});
</script>
</head>
<body>
<script>
// ...
let fen = document.getElementsByTagName("html")[0];
console.log("Résolution Ecran : " + fen.clientWidth + "x" + fen.clientHeight);
</script>
</body>
</html>