我必须为禁用用户创建一个网站,在那里我可以更改页面对比度css一个用户选择不同的颜色,到目前为止我有javascript这样做,但当我点击另一个页面时,如在页面重新加载/刷新CSS样式返回默认样式。我知道必须有一种方法可以将它保存为cookie,但我对PHP和JavaScript很新:
这是我的HTML:
<body runat="server" id="Body" style="zoom: 100%">
<div id="container">
<div id="highvis">
<ul>
<li class="highviss"> <a href="#" onclick="swapStyleSheet('css/webcss2.css');return false;">high vis</a>
<li> <a href="#" onclick="swapStyleSheet('css/webcss3.css');return false;">Dark</a>
<li> <a href="#" onclick="swapStyleSheet('css/webcss.css');return false;">Default</a>
<li><a href="#" onclick="zoomIn();return false;">Zoom In ++</a></li>
<li><a href="#" onclick="zoomOut();return false;">Zoom Out -</a></li>
</ul>
</div>
这是我的Javascript:
function swapStyleSheet(sheet) {
document.getElementById('pagestyle').setAttribute('href', sheet);
}
function zoomIn()
{
var Page = document.getElementById('Body');
var zoom = parseInt(Page.style.zoom) + 10 +'%'
Page.style.zoom = zoom;
return false;
}
function zoomOut()
{
var Page = document.getElementById('Body');
var zoom = parseInt(Page.style.zoom) - 10 +'%'
Page.style.zoom = zoom;
return false;
}
任何人都可以帮助我这样做,如果不是任何想法,或者我怎么能去做。
答案 0 :(得分:1)
您可以使用javascript创建以后可以传递的Cookie。
这是W3school所以请谨慎阅读:
http://www.w3schools.com/js/js_cookies.asp
编辑: MDN的链接,因为我倾向于同意发布的评论: https://developer.mozilla.org/en-US/docs/Web/API/document.cookie
答案 1 :(得分:1)
这是一个类似于你的JS解决方案,但它记得。 所以在交换样式表上我们想要创建一个带有样式表名称的cookie:
function swapStyleSheet(sheet) {
createCookie('sheet2load',sheet,365);//save sheet name in cookie
document.getElementById('pagestyle').setAttribute('href', sheet);
}
并在刷新的某个地方加载样式表(如果在.ready事件中使用jquery,在脚本标记中的纯JS somwhere底部)我们需要这样:
var s=readCookie('sheet2load')
if(s!==null)document.getElementById('pagestyle').setAttribute('href', s);
我们还需要从http://www.quirksmode.org/js/cookies.html
借用这两项功能function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
这应该这样做,虽然代码是未经测试的,所以如果它没有发表评论并且我会检查它,但无论哪种方式它应该给你一些关于如何做的提示
答案 2 :(得分:0)
创建cookie的最简单方法 你可以使用JQuery Cookie插件来做到这一点