用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 23 Javascript
基于jquery实现的表格分页实现代码
Jun 21 Javascript
JQuery 返回布尔值Is()条件判断方法代码
May 14 Javascript
js获取页面传来参数的方法
Sep 06 Javascript
chrome调试javascript详解
Oct 21 Javascript
jQuery EasyUI 获取tabs的实例解析
Dec 06 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 Javascript
解决vue多个路由共用一个页面的问题
Mar 12 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
Aug 31 Javascript
JavaScript作用域链实例详解
Jan 21 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 08 Javascript
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
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
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
js for终止循环 跳出多层循环
2018/10/04 Javascript
vue全局自定义指令-元素拖拽的实现代码
2019/04/14 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
深入理解Python异常处理的哲学
2019/02/01 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
Python日志器使用方法及原理解析
2020/09/27 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
Why we need EJB
2016/10/20 面试题
小学英语教学反思
2014/01/30 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
颁奖典礼主持词
2014/03/25 职场文书
股东合作协议书
2014/04/14 职场文书
狮子林导游词
2015/02/03 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
停发工资证明范本
2015/06/12 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis
python中pycryto实现数据加密
2022/04/29 Python
排查Tomcat进程假死的问题
2022/05/06 Servers