使用php javascript在所有页面上应用临时css样式表

时间:2014-04-06 19:13:20

标签: javascript php html css

我必须为禁用用户创建一个网站,在那里我可以更改页面对比度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;
}

任何人都可以帮助我这样做,如果不是任何想法,或者我怎么能去做。

3 个答案:

答案 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插件来做到这一点

see documentation