用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 相关文章推荐
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
Aug 30 Javascript
JavaScript通过字符串调用函数的实现方法
Mar 18 Javascript
jQuery使用animate创建动画用法实例
Aug 07 Javascript
详解JavaScript UTC时间转换方法
Jan 07 Javascript
jQuery实现验证码功能
Mar 17 Javascript
使用 jQuery 实现表单验证功能
Jul 05 jQuery
基于vue.js的分页插件详解
Nov 27 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
Nov 05 Javascript
微信小程序发送短信验证码完整实例
Jan 07 Javascript
Vue vm.$attrs使用场景详解
Mar 08 Javascript
基于JavaScript的数据结构队列动画实现示例解析
Aug 06 Javascript
javascript实现移动端轮播图
Dec 09 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
php中去除所有js,html,css代码
2010/10/12 PHP
php二分查找二种实现示例
2014/03/12 PHP
php格式化金额函数分享
2015/02/02 PHP
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
详解a++和++a的区别
2017/08/30 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
Python3中的2to3转换工具使用示例
2015/06/12 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
pycharm远程调试openstack代码
2017/11/21 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
python并发和异步编程实例
2018/11/15 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
python生成requirements.txt的两种方法
2019/09/18 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
UNIX特点都有哪些
2016/04/05 面试题
沈阳故宫导游词
2015/01/31 职场文书
扬州个园导游词
2015/02/06 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript