0

私は3つのhtmlファイルを持つウェブサイトを持っています:

言語選択:media/index.html

日本語ページ:media/en/index.html

CN ページ:media/cn/index.html

サイト ファイル:media/site/

訪問者が Web サイトで言語を選択すると、このスクリプトを使用して Cookie を作成します。

<script type="text/javascript">

    $(function () {

        var url = '';
        var en_page = 'en';
        var cn_page = 'cn';

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

        $('#enlink').click(function () {
            $.cookie('default_page', en_page, {expires: 999, path: '/', domain: 'mywebsite.com'});
        });

        $('#cnlink').click(function () {
            $.cookie('default_page', cn_page, {expires: 999, path: '/', domain: 'mywebsite.com'});
        });

    });

</script>

    ....
    ....

    <a href="cn/index.html" id="cnlink">CN</a>
    <br>
<a href="en/index.html" id="enlink">EN</a>

これにより、値が「cn」または「en」の「default_page」という名前の Cookie が正常に作成され、その後の訪問時にユーザーがリダイレクトされmywebsite.com/cnますmywebsite.com/en。これはすべてうまくいきます。

ただし、この Cookieを削除できません。media/en/index.htmlまたはmedia/cn/index.html(つまり、言語選択ページではなく、実際の Web サイト) で言語を変更するためにユーザーがリンクをクリックするたびに、この Cookie を削除する必要があります。

<script type="text/javascript">

    function deletecookie(){
        alert('delete');
        $.cookie('default_page', null, {path: '/', domain: 'mywebsite.com'});
    }

</script>

....
....

<a href="../index.html" onclick="deletecookie()">
    Change language
</a>

しかし、これは機能しません。「言語の変更」をクリックした瞬間に、(Cookie がまだ存在するため) 同じページにリダイレクトされ、言語ページ ( media/index.html) にアクセスできません。アラート ボックスが表示されたときに関数が呼び出されていますが、Firefox であるブラウザーを確認したところ、Cookiemywebsite/default_pageがまだ残っています。

ご協力いただきありがとうございます。

4

1 に答える 1

2

これを変更してみてください

$.cookie('default_page', null, {path: '/', domain: 'mywebsite.com'});

これに

$.cookie('default_page', null);
于 2012-11-25T21:28:16.077 に答える