16.11.2022, 10:48
Hi alhai007,
ich weiß nicht wo das Problem ist, deswegen habe ich zwei Schutzmechanismen eingebaut. Sollten diese nicht funktionieren und es wird als Schleife ausgegeben, dann stimmt etwas nicht mit deiner Browserkonfiguration. Versuche mal diesen Code; der sollte nur einmal ausführbar sein.
Mein modifizierte Version meines Codeschnipsels:
Ich könnte mir vorstellen wo das Problem liegen könnte. Wenn du auf jeder Seite den gleichen Code ausführst, bekommst du eine Schleife. Deswegen wäre es besser vorher abzufragen ob die entsprechende Seite schon geladen wurde. Hier ein weitere Codevbeispiel:
Ich hoffe das hilft dir weiter. Ich würde beide Versionen testen. Wobei die zweite Version dafür das ist wenn du auf jeder Seite diesen Code eingebunden hast.
Viel Erfolg
rzscout
ich weiß nicht wo das Problem ist, deswegen habe ich zwei Schutzmechanismen eingebaut. Sollten diese nicht funktionieren und es wird als Schleife ausgegeben, dann stimmt etwas nicht mit deiner Browserkonfiguration. Versuche mal diesen Code; der sollte nur einmal ausführbar sein.
Mein modifizierte Version meines Codeschnipsels:
Code:
document.addEventListener('DOMContentLoaded', init);
var userLang, count;
function init() {
count++;
if(count<= 1) {
userLang = navigator.language; // navigator.language reicht vollkommen aus. Es wird von den meisten Browsern unterstützt auch vom IE11
switch(userLang) {
case 'de':
alert("Ihre Seite wird in deutsch geladen");
document.location.href='https://domain.com';
break;
case 'en':
case 'en-us': // Wird immer klein geschrieben nach ISO 3166-1
alert("Die Seite wird in englisch geladen");
document.location.href='https://domain.com/en/';
break;
case 'it':
alert ("DIE SEITE wird in Italienisch geladen");
document.location.href='https://domain.com/it/';
break;
default:
alert ("This Site here is not available in your language");
document.location.href='https://domain.com';
}
}
}
Ich könnte mir vorstellen wo das Problem liegen könnte. Wenn du auf jeder Seite den gleichen Code ausführst, bekommst du eine Schleife. Deswegen wäre es besser vorher abzufragen ob die entsprechende Seite schon geladen wurde. Hier ein weitere Codevbeispiel:
Code:
document.addEventListener('DOMContentLoaded', init);
var userLang, count, lang;
function init() {
count++;
if(count<= 1) {
userLang = navigator.language; // navigator.language reicht vollkommen aus. Es wird von den meisten Browsern unterstützt auch vom IE11
switch(userLang) {
case 'de':
checkURL('https://domain.com');
lang = "Deutsch";
break;
case 'en':
case 'en-us': // Wird immer klein geschrieben nach ISO 3166-1
lang = "Englisch";
checkURL('https://domain.com/en/');
break;
case 'it':
lang = 'Italienisch';
checkURL('https://domain.com/it/');
break;
default:
lang = "Standardsprache";
checkURL('https://domain.com');
}
}
}
function checkURL(myURL) {
let currentURL = window.location.href;
if(currentURL != myURL) {
alert("Die Seite mit " + lang + " wird geladen!");
window.location.href = myURL;
}
}
Ich hoffe das hilft dir weiter. Ich würde beide Versionen testen. Wobei die zweite Version dafür das ist wenn du auf jeder Seite diesen Code eingebunden hast.
Viel Erfolg
rzscout
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen"