chrome本地打开html页面cookie无效

这两天学习一个多语言功能的网页的测试,思路很简单:

1. 用cookie保存客户端选择的语种

2.刷新页面

3.读取刚才设置的cookie

设置和读取cookie函数

// JavaScript Document
var CookieUtil = {
	get: function(name){
		var cookieName = encodeURIComponent(name) + "=",
			cookieStart = document.cookie.indexOf(cookieName),
			cookieValue = null;
		if(cookieStart > -1){
			var cookieEnd = document.cookie.indexOf(";", cookieStart);
			if(cookieEnd == -1){
				cookieEnd = document.cookie.length;
			}
			cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
			return cookieValue;
		}
	},
	set: function (name, value, expires, path, domain, secure){
		var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
		
		if(expires instanceof Date){
			cookieText += ";expires=" + expires.toGMTString();
		}
		if(path){
			cookieText += ";path=" + path;
		}
		if(domain){
			cookieText += ";domain=" + domain;
		}
		if(secure){
			cookieText += ";secure";
		}
		document.cookie = cookieText;
	},
	unset: function(name, path, domain, secure){
		this.set(name, "", new Date(0), path, domain, secure);
	}
};


html 页面很简单,就一个select 下拉框

<!doctype html>
<html>
<head>
<meta charset="utf-8"> 
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="i18n.js"></script>
<script type="text/javascript" src="cookie.util.js"></script>
</head>
<body>
	<select id="i18n">
		<option value="fr">French</option>
		<option value="en">English</option>
		<option value="zh">简中</option>
	</select>	
	<div><span class="i18n-hello_world"></span></div>
	<div><span class="i18n-gamegoal_1"></span></div>
</body>
</html>

操作 js 代码

var Local = {
	get: function(){
		if (CookieUtil.get("lang")) {
			return CookieUtil.get("lang");
		}
	}
};

var i18n = function(){
	var lang, defaultLang = "en";
	var dictionaries = {
		"en": {"hello_world":"Hello World","gamegoal_1":"In SAME, your goal is to remove all balls in the grid."},
		"fr": {"hello_world":"Bonjour le monde","gamegoal_1":"Dans SAME, l'objectif est de retirer toutes les billes d'une grille."},
		"zh": {"hello_world":"嗨,我在这里","gamegoal_1":"我的成绩"}
	};

	var updateDOM = function(){
		var dict = dictionaries[lang] || dictionaries[defaultLang];
		for (var key in dict) {
			$(".i18n-" + key ).text(dict[key]);			
		};
	}

	return {
		init: function(){
			lang = Local.get() || defaultLang;
			updateDOM();
		},
		get: function(key){
			var dict = dictionaries[lang] || dictionaries[defaultLang];
			return "" + dict[lang];
		},
		updateDOM: updateDOM
	}
}();

$(document).ready(function(){
	i18n.init();
	if (CookieUtil.get("lang")) {
		$("#i18n").val(CookieUtil.get("lang"));
	};
	$("#i18n").change(function(){
		CookieUtil.set("lang",$(this).val(), new Date("January 1,2015"));
		location.reload();
	});
});

完之后直接双击html文件打开,在IE11和FF测试均没问题,但chrome也反应,此时的地址栏是 D:\www\i18n\i18n.html

后来就想到可能是chrome安全性导致的这个问题,换成localhost 方式访问,就OK了

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值