用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表格的渲染组件
Jul 03 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
Oct 15 Javascript
浅析jquery数组删除指定元素的方法:grep()
May 19 Javascript
AngularJS实现按钮提示与点击变色效果
Sep 07 Javascript
原生js实现鼠标跟随效果
Feb 28 Javascript
Vue2.0实现购物车功能
Jun 05 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
Jul 24 Javascript
自制简易打赏功能的实例
Sep 02 Javascript
Vue+webpack项目基础配置教程
Feb 12 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
Vue的生命周期操作示例
Sep 17 Javascript
JavaScript数组类型Array相关的属性与方法详解
Sep 08 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 的异常处理程序
2014/06/22 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
js查错流程归纳
2012/05/04 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
jquery对dom的操作常用方法整理
2013/06/25 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
JS实现简单贪吃蛇小游戏
2020/10/28 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
Python图像读写方法对比
2020/11/16 Python
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
财务会计实习报告体会
2013/12/20 职场文书
校园广播稿500字
2014/02/04 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
安全教育感言
2014/03/04 职场文书
励志演讲稿800字
2014/08/21 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
运动会通讯稿50字
2015/07/20 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
MySQL七种JOIN类型小结
2021/10/24 MySQL