用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 相关文章推荐
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
Jan 22 Javascript
js使下拉列表框可编辑不止是选择
Dec 12 Javascript
Js冒泡事件详解及阻止示例
Mar 21 Javascript
Node.js 异步编程之 Callback介绍(一)
Mar 30 Javascript
jquery验证邮箱格式并显示提交按钮
Nov 07 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
Vue.js实现价格计算器功能
Mar 30 Javascript
浅谈在koa2中实现页面渲染的全局数据
Oct 09 Javascript
基于zepto.js实现登录界面
Oct 09 Javascript
浅谈node.js 命令行工具(cli)
May 10 Javascript
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
JavaScript自定义超时API代码实例
Apr 30 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为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
几个php应用技巧
2008/03/27 PHP
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
2009/10/31 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
Javascript &amp; DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
document.getElementById介绍
2011/09/13 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
js实现随机数小游戏
2019/06/28 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Python高级用法总结
2018/05/26 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
python动态视频下载器的实现方法
2019/09/16 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
尼克松手表官网:Nixon手表
2019/03/17 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
介绍一下gcc特性
2015/10/31 面试题
社区健康教育工作方案
2014/06/03 职场文书
教师演讲稿开场白
2014/08/25 职场文书
员工教育培训协议书
2014/09/27 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
mysql查询结果实现多列拼接查询
2022/04/03 MySQL
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js