我正在研究cookies。
描述: 想要更改js文件并将其存储在cookie中。
如果我点击B2b industry
链接,页面应将js文件从banking.js
替换为b2b.js
,依此类推......
上述方案(替换js文件)正在按预期工作。
问题:
但是,在加载脚本文件后,我正在尝试替换<h1>, <p>
文件中b2b.js
个标签的内容,这些内容未受影响...
请帮忙吗?
PS :同样适用于CSS文件切换
init.js
var Cookies = {
SetCookie: function (c_name, value, exdays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
document.cookie = c_name + "=" + c_value;
},
GetCookie: function (c_name) {
var i, x, y, ARRcookies = document.cookie.split(";");
for (i = 0; i < ARRcookies.length; i++) {
x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name) {
return unescape(y);
}
}
}
}
// file change
if (Cookies.GetCookie("industryBased") != "") {
setIndustryFile(Cookies.GetCookie("industryBased"));
}
function setIndustryFile(industryFileName) {
document.getElementById("industryScriptFile").src = industryFileName;
Cookies.SetCookie("industryBased", industryFileName, 60);
return false;
}
的index.html
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script src="jquery.min.js"></script>
<script id="industryScriptFile" src="banking.js" type="javascript"></script>
<script src="init.js"></script>
</head>
<body>
<h1>What is Lorem Ipsum?</h1>
<ul>
<li><a href="#b2b" onclick="setIndustryFile('b2b.js');return false;")>B2b industry</a></li>
<li><a href="#travel" onclick="setIndustryFile('travel.js');return false;")>Travel industry</a></li>
<li><a href="#healthcare" onclick="setIndustryFile('healthcare.js');return false;")>Healthcare industry</a></li>
</ul>
<p>Lorem Ipsum</p>
<a href="page2.html">Go to Page 2</a>
</body>
</html>
b2b.js
jQuery('h1').html('B2B Industry heading...');
jQuery('p').html('B2B Industry content...');
jQuery('body').css('color', 'red');
答案 0 :(得分:1)
指http://browsercookielimits.squawky.net/
我认为您的每个Cookie大小都过大,因此浏览器无法保存它们。
每个浏览器对Cookie存储的限制大小不同。确保您的Cookie大小不会过大。