50 lines
No EOL
1.8 KiB
JavaScript
50 lines
No EOL
1.8 KiB
JavaScript
document.addEventListener("DOMContentLoaded", function () {
|
|
// Fonction pour obtenir les paramètres d'URL
|
|
function getQueryParams() {
|
|
const params = {};
|
|
const queryString = window.location.search.substring(1);
|
|
const regex = /([^&=]+)=([^&]*)/g;
|
|
let match;
|
|
while (match = regex.exec(queryString)) {
|
|
params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);
|
|
}
|
|
return params;
|
|
}
|
|
|
|
// Fonction pour charger les redirections à partir du fichier JSON relatif au script
|
|
function loadRedirections() {
|
|
const jsonUrl = new URL('../json/redirect.json', import.meta.url).href;
|
|
return fetch(jsonUrl)
|
|
.then(response => {
|
|
if (!response.ok) {
|
|
throw new Error("Erreur lors du chargement du fichier JSON");
|
|
}
|
|
return response.json();
|
|
})
|
|
.catch(error => {
|
|
console.error("Erreur:", error);
|
|
return {}; // Retourner un objet vide si le chargement échoue
|
|
});
|
|
}
|
|
|
|
const defaultRedirection = '../';
|
|
|
|
// Charger les redirections et appliquer la logique
|
|
loadRedirections().then(redirections => {
|
|
const queryParams = getQueryParams();
|
|
|
|
// Déterminer l'URL cible en fonction des paramètres d'URL
|
|
const targetUrl = queryParams.link && redirections[queryParams.link] ? redirections[queryParams.link] : defaultRedirection;
|
|
|
|
// Mettre à jour le lien "here"
|
|
const hereElement = document.getElementById('here');
|
|
if (hereElement) {
|
|
hereElement.href = targetUrl;
|
|
}
|
|
|
|
// Rediriger après 3 secondes
|
|
setTimeout(function () {
|
|
window.location.href = targetUrl;
|
|
}, 3000);
|
|
});
|
|
}); |