用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 相关文章推荐
javascript 常用方法总结
Jun 03 Javascript
jQuery的css() 方法使用指南
May 03 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
Dec 18 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
Mar 01 Javascript
深入浅析Bootstrap列表组组件
May 03 Javascript
更靠谱的H5横竖屏检测方法(js代码)
Sep 13 Javascript
JS中关于事件处理函数名后面是否带括号的问题
Nov 16 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
jquery.validate表单验证插件使用详解
Jun 21 jQuery
Angular指令之restict匹配模式的详解
Jul 27 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 Javascript
vue项目支付功能代码详解
Feb 18 Vue.js
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 MYSQL中插入当前时间
2008/04/06 PHP
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
php生成gif动画的方法
2015/11/05 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
python概率计算器实例分析
2015/03/25 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
linux面试题参考答案(6)
2014/08/29 面试题
车间副主任岗位职责
2013/12/24 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
公司年底活动方案
2014/08/17 职场文书
给医院的感谢信
2015/01/21 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
2019年思想汇报
2019/06/20 职场文书
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server