语言切换器 - Javascript / jQuery和Cookies

时间:2015-05-21 19:07:53

标签: javascript jquery html cookies

使用互联网和Stack Overflow资源,我设法编写了一个粗略的HTML网站,允许用户使用Javascript,jQuery和XML即时切换它的语言。

现在,我遇到的问题是在整个门户网站上保留首选语言,而不需要在每次导航时更改它。我决定使用一个简单的cookie来跟踪它,但似乎我搞砸了一些东西,我无法弄清楚我做错了什么。

基本上,页面本身在代码本身中有文本(作为备份以防万一),但是文本在引导站点时变得不可见,直到我切换语言,当我导航门户时也不保留语言。对于前者,我假设脚本正在读取一些空的或整体错误的cookie,所以我试图将其过滤掉并使用默认语言,但是徒劳无功。至于后一个问题,我想我也错误地保存了cookie,但我似乎无法弄清楚它有什么问题。

任何帮助/建议都将不胜感激。

function changeLanguage(lang) {
        $(function() {
            $.ajax({
                url: 'jezyki.xml',
                success: function(xml) {
                    $(xml).find('translation').each(function(){
                        var id = $(this).attr('id');
                        var text = $(this).find(lang).text();
                        $("." + id).html(text);

                       if (lang === "") { }

                        else {
                            var title = lang;
                            createCookie("language", title, 365);
                        }
                    });
                }
            });
        });
}

$(document).ready(function () {
    $("input[name='radio-language']").click(function () {
        changeLanguage($(this).val());
    });
});

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    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, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

window.onload = function (e) {
    var cookie = readCookie("language");
    var domyslny = "english";
    if (title === "") { changeLanguage(domyslny); } else { changeLanguage(title); }
}

道歉,如果这是愚蠢的话,我在Javascript / jQuery方面相当新手。

0 个答案:

没有答案