私は2つの言語をサポートするウェブサイトを持っています。 Chromeの切り替え言語は素晴らしいですが、Firefoxではデフォルトで設定されているドイツ語の言語変数を常に設定する "英語"または "ドイツ語"の言語をクリックしても問題ありません。Firefoxで言語が変更されない
私はこの問題を解決するために?ここ
は、私は私はあなたがこのようなよくものとしてのonload関数にAJAXリクエストを置くべきだと思い
var lang = getLangCookie('lang');
console.log('lang = ', lang);
$.ajax({
type: "GET",
url: '/menu.xml',
dataType: "xml",
success: function (xml) {
$(xml).find('description ' + lang).each(function() {
$(this).parent().html($(this).html());
}
);
var menu = [];
var data = $.xml2json(xml)['#document'];
that.menu = data.menu;
console.log('menu = ', that.menu);
}
}
);
function getLangCookie(lang) {
var name = lang + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1);
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
// by clicking on English button set the cookie value
function onEnglishbtn() {
setLangCookie("lang", "en", 30);
document.location.reload();
var lang = getLangCookie('lang');
return lang;
}
function setLangCookie(lang, value, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = lang + "=" + value + "; " + expires;
}
// function onload from index.html setting up the lang by default
window.onload = function() {
setLangCookie("lang", "de", 30);
if (typeof window.localStorage !== "undefined" && !localStorage.getItem('visited')) {
localStorage.setItem('visited', true);
setLangCookie("lang", "de", 30);
}
}
ここで、Cookieの値を変更しますか? –
メインポストに関数を追加したばかりです – Christian
Firefoxはクッキーを無効にしますか? – VinhNT