怎样通过cookie修改html代码

就是先通过jquery动态添加样式或属性,同时html文件又实实在在写入了这些代码,求高手指教,因为我对cookie不熟悉!!!求详细代码,拜谢... 就是先通过jquery 动态添加样式或属性,同时html 文件又实实在在写入了这些代码,求高手指教,因为我对cookie不熟悉!!!求详细代码,拜谢 展开
 我来答
掌宝0c
2014-01-03
知道答主
回答量:4
采纳率:0%
帮助的人:4.6万
展开全部

我举一个夜间模式的例子吧,假如页面上有一个夜间模式的按钮,用户点击以后就会切换到夜间模式的样式,同时这个样式会保留数天,大概的应用场景就是这样的。

如果要做到上面的效果,你首先得准备下面几样东西:

1、jQuery cookie插件,这个百度一下就可以找到,一段很简单的代码,用来实现在用户端加入cookie的功能

2、CSS样式表,可以把白天和黑夜的样式都写入到同一个css里面,也可以把它们分开来写,我这个例子里面是把它们分开来写的,两个css,一个day.css,一个night.css


有了这几样东西,就可以开工了,具体做法如下:

一、在页面中把两个css文件都引用进去,给它们定义一个title,并其中一个加上disabled,让它不被浏览器加载,例如下面这样

<link title="day" rel="stylesheet" type="text/css" href="day.css" />
   

<link title="night" rel="stylesheet" type="text/css" href="night.css" disabled />

二、引用jQuery cookie插件

三、在html中加入控制夜间模式的按钮,给它们分别加上ID,例如下面这样

<div id="day" class="night_mode">关闭夜间模式<img class="mode_btn" src="images/night_mode_off_btn.png"/></div>

<div id="night" class="night_mode">打开夜间模式<img class="mode_btn" src="images/night_mode_on_btn.png"/></div>

四、加入控制夜间模式的js代码:

$(function() {
    var cookie_style = $.cookie("mystyle"); //给cookie加一个标识符
    if (cookie_style == null) {  //如果cookie为空,就显示白天的样式
        $("link[title='day']").removeAttr("disabled");
    } else if (cookie_style == "day") { //如果cookie为day,就显示白天的样式
        $("link[title='day']").removeAttr("disabled");
        $("link[title='night']").attr("disabled", "disabled");
    } else { //如果cookie为night,就显示夜间的样式
        $("link[title='night']").removeAttr("disabled");
        $("link[title='day']").attr("disabled", "disabled");
    }
//当用户点击id为night的按钮时的操作
    $("#night").click(function() { 
        var style = $("#night").attr("id"); //把night的值赋予给style
        $("link[title='" + style + "']").removeAttr("disabled");  //显示title为night的css
        $("link[title='day']").attr("disabled", "disabled"); //隐藏title为day的css
        $.cookie("mystyle", style, {  //设置cookie的有效期是10天
            expires:10
        });
    });
//当用户点击id为day的按钮时的操作
    $("#day").click(function() {
        var style = $("#day").attr("id"); //把day的值赋予给style
        $("link[title='" + style + "']").removeAttr("disabled"); //显示title为day的css
        $("link[title='night']").attr("disabled", "disabled"); //隐藏title为night的css
        $.cookie("mystyle", style, {  //设置cookie的有效期是10天
            expires:10
        });
    });
});


这样就可以做到通过jquery动态添加样式,同时即使用户关闭了页面,再次访问时仍然可以保留之前设定的样式了。


如果想要只引用一个css样式表,操作方法也跟上面差不多,灵活变通一下就行了。

追问
嗯,谢谢你的回答,不过我的目的是要实现 通过jquery 弹出层,比如向某个div添加个name=‘xx’属性,下次无论打开该文件,这个name属性已经在这个div上面了 ,并且能够看见,

你能帮我解决这个问题么?
谢谢了,师兄!
追答
想要name属性在div上,并且在代码中能够看见是做不到的,jquery只是一个前端脚本,只能通过cookie的方式把它动态加载进页面,用户在访问页面的时候可以看到最终的效果,但是把页面文件保存到本地以后,代码还是原来的代码,如果要改变文件的实际代码,就只能用动态语言来写,例如php什么的,静态语言是没办法做到这个效果的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式