私は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
がまだ残っています。
ご協力いただきありがとうございます。