我有一个html页面,index.html用于语言选择(带有2个语言链接的简单黑色覆盖),除了将/ EN或/ CN添加到地址之外,用作页面用户总是去,然后每个链接链接到一个不同的html文件,EN.html和CN.html。 有没有人知道如何创建一个cookie,以便第一次有人访问我的网站,他/她将正常去语言选择index.html,选择语言,创建一个cookie来记住选择,然后在后续访问中完全跳过index.html并直接访问www.mywebsite.com/EN或www.mywebsite.com/CN,即使他/她在“www.mywebsite.com”中输入内容? 我在这个网站上阅读了一个教程,创建了一个记住语言选择的cookie,它基本上归结为JQuery cookie插件,以及这样的脚本:
$(function () {
var url = 'your_url';
var en_page = 'en.html';
var cn_page = 'cn.html';
if ($.cookie('default_page') != null) {
if (window.location.href != url + '/' + $.cookie('default_page')) {
window.location.href = url + '/' + $.cookie('default_page');
}
}
$('#set_en_button').click(function () {
$.cookie('default_page', en_page, { expires: 999 });
});
$('#set_cn_button').click(function () {
$.cookie('default_page', cn_page, { expires: 999 });
});
});
但我认为这只适用于语言选择页面与其中一种语言相同的html文件?语言选择页面是一个单独的页面? 感谢。
答案 0 :(得分:0)
您可以通过两种方式解决此问题。更可靠但更复杂的方法是在您单击链接导航回主页时清除cookie。例如:
<a href="index.html" class="return-link">Back Home</a>
<script type="text/javascript">
$(function() {
$('.return-link').click(function(e) {
$.removeCookie('default_page');
});
});
</script>
这个解决方案并不理想,因为:
更优雅的解决方案是更改主页代码并使用document.referrer
属性。此属性包含到达当前页面之前访问的最后一页。使用这些知识,您可以将代码更改为:
$(function () {
var url = 'your_url';
var en_page = 'en.html';
var cn_page = 'cn.html';
// if the last page you visited has the same hostname
// as the index page, (eg. www.domain.com == www.domain.com)
// you must be coming from a page on your own site
// therefore clear the existing cookie
if (document.referrer.host == document.location.host) {
$.removeCookie('default_page');
}
if ($.cookie('default_page') != null) {
if (window.location.href != url + '/' + $.cookie('default_page')) {
window.location.href = url + '/' + $.cookie('default_page');
}
}
$('#set_en_button').click(function () {
$.cookie('default_page', en_page, { expires: 999 });
});
$('#set_cn_button').click(function () {
$.cookie('default_page', cn_page, { expires: 999 });
});
});
此解决方案更具可扩展性,因为:
注意:在特殊情况下,referrer字段有时可能为null。你将不得不研究它是多么可靠,但我认为在这种情况下,它几乎应该在所有时间都有效。