用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 document.referrer 用法
Apr 30 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
Jun 19 Javascript
JS实现简单的顶部定时关闭层效果
Jun 15 Javascript
js如何判断输入字符串长度
Dec 16 Javascript
JS实现HTML表格排序功能
Aug 05 Javascript
bootstrap css样式之表单
Jan 19 Javascript
javascript常用的设计模式
Feb 09 Javascript
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 Javascript
如何在Angular应用中创建包含组件方法示例
Mar 23 Javascript
js实现简单放大镜效果
Mar 07 Javascript
js抽奖转盘实现方法分析
May 16 Javascript
node+vue实现文件上传功能
May 28 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
mysql 性能的检查和优化方法
2009/06/21 PHP
php写的AES加密解密类分享
2014/06/20 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
浅谈php调用python文件
2019/03/29 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
表单元素事件 (Form Element Events)
2009/07/17 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
实用的简历自我评价
2014/03/06 职场文书
伦敦奥运会口号
2014/06/13 职场文书
校庆团日活动总结
2014/08/28 职场文书
2015年植树节活动总结
2015/02/06 职场文书
冰峪沟导游词
2015/02/09 职场文书
胡桃夹子观后感
2015/06/11 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书