【问题标题】:Cookie Script for remembering lanuage setting website用于记住语言设置网站的 Cookie 脚本
【发布时间】:2018-02-04 13:23:09
【问题描述】:

我在 stackoverflow 上找到了此代码用于网站翻译,但是当我使用它时,网站会闪烁,就像它每毫秒会转到相同/或其他页面一样。

我正在使用这个脚本:

  <head>
    <script type="text/javascript" src="script/jquery.js"></script>
        <script type="text/javascript" src="script/jquery.cookie.js"></script>
    <script>
                $(function () {

        var url = 'http://www.gester.nl';
        var english_page = 'index-eng';
        var dutch_page = 'index';


        if ($.cookie('default_page') != null) {
            if (window.location.href != url + '/' + $.cookie('default_page')) {
                window.location.href = url + '/' + $.cookie('default_page');
            }
        }

        $('#english').click(function () {
            $.cookie('default_page', dutch_page, { expires: 999 });
            alert('Dutch was set as the default language');
        });

            $('#dutch').click(function () {
            $.cookie('default_page', dutch_page, { expires: 999 });
            alert('Dutch was set as the default language');
        });

    });</script> </head>

我正在将此代码用于我的图像按钮:

<a href="index"><img id="dutch" src="images/dutch.png"></a>

和

<a href="index-eng"><img id="english" src="images/english.png"></a>

我是这样离开网站的,所以你可以在我的朋友网站www.gester.nl上测试它。

在英语按钮上向后单击,然后再次在荷兰语按钮上单击。 有时点击英语时它会起作用,有时当您点击英语和荷兰语按钮时它不起作用。

非常感谢您的帮助。因为当它工作了几秒钟时我很高兴,然后我看到了这个我现在无法解决的问题。一直在寻找和更改(default_page)并删除一些行以查看问题开始的位置,但我不知道如何使用此 jquery 代码。

感谢您的宝贵时间。

【问题讨论】:

    标签: javascript jquery html cookies


    【解决方案1】:
    $('#english').click(function () {
            $.cookie('default_page', dutch_page, { expires: 999 });
            alert('Dutch was set as the default language');
        });
    

    您正在这样做,所以无论何时单击荷兰语或英语,它都会将其设置为荷兰语页面。因此,您的默认页面 cookie 正在尝试更新为新变量,并且不断调用旧变量。尝试将英文功能设置为:

    $('#english').click(function () {
            $.cookie('default_page', english_page, { expires: 999 });
            alert('English was set as the default language');
        });
    

    可能是错的,但我只是好奇它的作用。很确定这可能会导致某些问题。

    【讨论】:

    • 在此答案之上,通过进一步检查您提供给我们的网站。在 script.js 文件中,您并没有为 click 函数关闭 addEventListener。
    • 那行不通。这很奇怪,因为如果我删除此代码: if ($.cookie('default_page') != null) { if (window.location.href != url + '/' + $.cookie('default_page') ) { window.location.href = url + '/' + $.cookie('default_page'); } }
    • 当我删除该代码时,一切正常,只是它不记得该页面。我已经尝试稍微更改此代码但没有成功。您是否了解如何以正确的方式更改此代码?感谢您的宝贵时间
    • 我将代码保存在网上。您仍然可以在 www.gester.nl 上观察它(仍然闪烁)
    • 你知道这是为什么吗?我真的很想知道这一点。什么都试过了
    【解决方案2】:

    根据我上面的回答,也这样做。

    在您的 script.js 文件中,更改以下内容:

    document.getElementById("mybtn").addEventListener("click", function(){
    document.getElementById("my_form").className="submitted";
    });
    

    到这里:

    document.getElementById("mybtn").addEventListener("click", function()){
    document.getElementById("my_form").className="submitted";
    });
    

    【讨论】:

    • 您好,感谢您的宝贵时间和回答。如果我更改此代码,网站将不再显示我的任何内容(白色或仅背景)。
    • 在 /script/ 文件夹中 script.js 的第 108 行。你从来没有更新我上面所说的。至少不是在gester.nl上。更新第 108 行后,请确保将其上传到 Gester.nl,以便我可以进一步检查问题。
    • @GiovanniPaez 阅读以上内容,只是想在这里引起您的注意。
    • 是的,兄弟我改变了它,但它什么也没改变。这不是问题的根源。我真的对这段代码发疯了,一直在尝试修复它 2/3 天。我发现保存的 cookie 被保存了两倍,所以保存的英语和荷兰语 cookie 一次又一次地加载。所以我正忙着寻找一种删除cookie的方法,这无济于事,因为它不会删除另一页上的2号cookie,它只会删除同一页面上的1号cookie。它不知道该怎么办,你能帮我吗?
    • 而更改上面的代码又给了我一个白页,所以代码没问题。让我们关注语言页面的脚本代码
    猜你喜欢
    • 2021-02-05
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多