用cookies实现的可记忆的样式切换效果代码下载


Posted in Javascript onDecember 24, 2007

无刷新cookies切换样式示例代码实例主要用到的代码

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>styleswitcher三水点靠木-3water.com </title> 
<link title=red rel="stylesheet" type="text/css" href="red.css"> 
<LINK title=blue href="blue.css" type=text/css rel="alternate stylesheet"> 
<SCRIPT src="styleswitcher.js" type=text/javascript></SCRIPT> 
<style> 
<!-- 
#wrapper     { font-size: 10px;width:100px; } 
#left     { width:20px; height:100px; } 
#right     { width:80px;float:right;background-color:#000000;;height:100px;color:#FFFFFF } 
--> 
</style> 
</head> <body> 
<A onclick="setActiveStyleSheet('red');return false;" href="#">red</A> 
<A onclick="setActiveStyleSheet('blue');return false;" href="#">blue</A> 
<select name="changestyle" size="1"> 
<option value="red">red</option> 
<option value="blue">blue</option> 
</select><input type="button" value="变" onclick="setActiveStyleSheet(changestyle.value);return false;"> 
<div id="wrapper"> 
    <div id="left">left</div> 
    <div id="right">right</div> 
</div> 
</body> 
</html>

styleswitcher.js 
// styleswitcher.js function setActiveStyleSheet(title) 
{ 
    var i, a, main; 
    for(i = 0; (a = document.getElementsByTagName("link")[i]); i++) 
    { 
        if (a.getAttribute("rel").indexOf("style") != -1 &&  
            a.getAttribute("title")) 
        { 
            a.disabled = true; 
            if (a.getAttribute("title") == title)  
                a.disabled = false; 
        } 
    } 
} 
function getActiveStyleSheet() 
{ 
    var i, a; 
    for(i = 0; (a = document.getElementsByTagName("link")[i]); i++) 
    { 
        if(a.getAttribute("rel").indexOf("style") != -1 &&  
           a.getAttribute("title") && ! a.disabled) 
            return a.getAttribute("title"); 
    } 
    return null; 
} 
function getPreferredStyleSheet() 
{ 
    var i, a; 
    for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) 
    { 
        if(a.getAttribute("rel").indexOf("style") != -1 && 
           a.getAttribute("rel").indexOf("alt") == -1 && 
           a.getAttribute("title")) 
            return a.getAttribute("title"); 
    } 
    return null; 
} 
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 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; 
} 
window.onload = function(e) 
{ 
    var cookie = readCookie("style"); 
    var title = cookie ? cookie : getPreferredStyleSheet(); 
    setActiveStyleSheet(title); 
} 
window.onunload = function(e) 
{ 
    var title = getActiveStyleSheet(); 
    createCookie("style", title, 365); 
} 
var cookie = readCookie("style"); 
var title = cookie ? cookie : getPreferredStyleSheet(); 
setActiveStyleSheet(title);

red.css
#left     { background-color:#0000FF; float:right;}

red.css
#left     { background-color:#FF0000;float:left; }
Javascript 相关文章推荐
网页的标准,IMG不支持onload标签怎么办
Jun 29 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
Nov 25 Javascript
DOM操作一些常用的属性汇总
Mar 13 Javascript
javascript实现淘宝幻灯片广告展示效果
Apr 27 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
在AngularJS框架中处理数据建模的方式解析
Mar 05 Javascript
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
Aug 24 Javascript
Node.js原生api搭建web服务器的方法步骤
Feb 15 Javascript
解决webpack多页面内存溢出的方法示例
Oct 08 Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 Javascript
VUE Elemen-ui之穿梭框使用方法详解
Jan 19 Javascript
2007/12/23更新创意无限,简单实用(javascript log)
Dec 24 #Javascript
两个DIV等高的JS的实现代码
Dec 23 #Javascript
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
Dec 23 #Javascript
表单项的name命名为submit、reset引起的问题
Dec 22 #Javascript
mapper--图片热点区域高亮组件官方站点
Dec 22 #Javascript
使Ext的Template可以解析二层的json数据的方法
Dec 22 #Javascript
IE与Firefox下javascript getyear年份的兼容性写法
Dec 20 #Javascript
You might like
PHP学习之PHP表达式
2006/10/09 PHP
php实现的MySQL通用查询程序
2007/03/11 PHP
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
python3将视频流保存为本地视频文件
2018/06/20 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
python编写实现抽奖器
2020/09/10 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
新闻专业个人自我评价
2013/09/21 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书