Cookie:
它的意思是在本地的客户端的磁盘上以很小的文件形式保存数据,Cookie的处理原则上需要在服务器环境下运行,目前Chrome不可以在客户端操作Cookie,其他浏览器均可以,
 
Cookie的组成:它是由名/值对形式的文本组成:name=value.它的完整格式为;
name=value;[expires=date];[path=path];[domain=somewhere.com];[secure]
中括号是可选,name=value是必选的,
document.cookie = 'user='+encodeURIComponent('lal');//编码写入
alert(decodeURIComponent(document.cookie)); //编码解读
expires=date//失效时间,如果没有写,则为浏览器关闭后即失效,
 
对于COokie,单纯的用JavaScript来设置,读取和删除不是特别的直观方便,我们可以封装成函数来方便调用,
//创建cookie
function setCookie(name,value,expires,path,domain,secure){
var cookeText=encodeURIComponent(name)+"="+encodeURIComponent(value);
if(expires instanceof Date){
cookieText+=';expires='+expires;
}
if(path){
cookieText+=';path='+path;
}
if(domain){
cookieText+=';domain='+domain;
}
if(secure){
cookieText+=';secure='+secure;
}
document.cookie=cookieText;
}
//获取cookie
function getCookie(name){
var cookieName = encodeURIComponent(name)+''=';
var cookiestart = document.cookie.indexOf(cookieName);
var cookieValue = null;
}
if(cookieStart>-1){
var cookieEnd = document.cookie.indexOf(',',cookieStart);
if(cookieEnd == -1){
cookieEnd = document.cookie.length;
}
cookieValue = decodeURIComponent{
document.cookie.substring(cookieStart + cookieName.length,cookieEnd)
}
return cookieValue;
}
//删除cookie
function unsetCookie(name){
document.cookie = name +'=;expires='+newDate(0);
}
 
cookie虽然在持久保存客户端用户数据提供了方便,分担了服务器存储的负担,但是还是由很多局限性的,
第一,每个特定的域名下最多生成20个cookie,
第二,cookie的最大存储约为4096字节,为了兼容性,一般都不超过4095个字节
第三,cookie存储在客户端的文本文件,所以特别重要的和敏感的数据时不建议保存在cookie的.
 
事件:
JavaScript有三种事件模型:内联模型,脚本模型和DOM2模型
内联模型:这是最传统表单的一种处理事件的额方法,
脚本模型:由于内联模型违反了HTML与JavaScript代码层次分离的原则,为了解决这个问题,我们可以在JavaScript中处理事件,这种处理方式就是脚本模型,
var input = document.getElementByTagName('input')[0];
input.onclick = function(){
alert('lee');
}//这种在JavaScript脚本中执行的方式就是脚本模型.
事件处理函数:
//onabort:图像加载过程中去中断加载.
//onblur :焦点改变时触发该函数,
//ondblclick:双击时触发的事件.
//onchange当改变一个元素的值且失去焦点时.
//ondragdrop:当用户将一个对象拖放到浏览器窗口时
//onerror:当图像或文档加载失败出现错误时触发该事件.
//onfocus:当获得焦点时触发的事件.
//onkeydown,onkeyup,onkeypress:
//onmouseout:当鼠标移除区域时,
//onmouseOver:当鼠标进入目标区域时.
//onmousemove:当鼠标在目标区域移动时,
//onmove当浏览器窗口移动时,
//onreset点击的时候清空表单的内容.表单复位按钮.
//onresize:当窗口大小发生改变的时候会调用这种方法.
//onselect:当选择一个表单对象时
//onsubmit:当发送表格到服务器时.
对于每一个时间,他都有自己的触发范围和方式,如果超出了触发范围和方式,事件处理就将失效
1,鼠标事件,页面所有元素都可以触发:其中有 click,dblclick,mousedown,mouseup,mouseover,mouseout,mousemove,z这些事件,
2,键盘事件,keydown当用户按下键盘上任意键触发,如果按住不放,会重复触发,
keypress当用户按下键盘上的字符触发,如果按住不放,会重复触发
keyup当用户释放键盘上的键时触发.
 
3,HTML事件:
load:当页面完全加载后再window上面触发,或当框架集加载完毕后再框架集上触发,
unload:当页面完全卸载后再window上面触发,或当框架集卸载后再框架集上触发,
select:当用户选择文本框(input或textarea)中的一个或多个字符触发,
change事件,blur事件,submit事件,reset事件,resize事件,scroll事件
事件对象
JavaScript事件的一个重要方面是他们拥有一些相对一致的特点,最方便和强大的就是事件对象,他们可以帮你处理鼠标事件和键盘敲击方面的情况,
事件处理有三部分组成:对象,事件处理函数=函数.例如:当即文档任意处:
document.onclick = function(){
alert('lle');
}
以上程序中,click表示一个事件类型,单击.而onclick表示一个事件处理函数或绑定对象的属性(或者叫事件监听器,侦听器).document表示一个绑定的对象,用于触发某个元素的区域.function()匿名函数是被执行的函数,用于触发后执行.
除了用匿名函数的方法,也可以设置成独立的函数.
document.onclick = box;
function box(){
alert('Lee');
}
this关键字和上下文:
在之前我们已经知道,this代表着离他最近的对象.
var input document.getElementByTagName('input')[0];
input.onclick = function(){
alert(this.value); //HTMLinputElement,this表示input对象
}
当触发某个事件时,会产生一个事件对象,这个对象包含着所有与对象有关的信息.包括导致时间的元素,事件的类型,以及其他与特定事件相关的信息,事件对象,我们一般称作为event对象,这个对象是浏览器通过函数传递过来的,直接通过接受参数就可以直接拿到这个对象,
input.onclick=function(evt){
var e = evt||window.event;//shixi按跨浏览器兼容获取event对象,
}
 
鼠标事件:通过鼠标事件可以获取到鼠标按钮信息和屏幕坐标信息等,
事件对象提供了两组来获取浏览器坐标 的属性,一组是页面可视区左边,一组是屏幕坐标,
clientX:可视区X坐标,距离左边框的位置,
clientY:可视区Y坐标,距离上边框的位置
screenX:屏幕区X坐标,距离左屏幕的距离.是整个屏幕,
screenY:屏幕区Y坐标,距离上屏幕的距离,
pageX,距离整个页面内容的左边的位置,
pageY,距离真个页面内容的上边的位置.
 
键盘事件:用户在使用键盘时会触发键盘事件,
键码:在发生keydown和keyup 事件时,event对象的keyCode属性中会包含一个代码,与键盘上的一个特定的键对应,
分歧:在火狐和欧朋中,分号键的keyCode值为59,也就是ASCII中分号的编码,而IE和Safari中返回186,即为键盘中按键的键码.可以使用StringfromCharCode()来将编码来转换为特定的字符,
keyCode和charCode的区别如下:比如当按着a键时,在火狐中会获得:
keydown: keycode is 65 charcode is 0
keyup: keycode is 65 charcode is 0
keypress: keycode is 97 charcode is 97
注:火狐中keycode都是大写,charCode是小写.在IE中charcode这个属性不存在,keypress默认是大写.
event对象包含的属性和方法:
bubbles 表明事件是否冒泡
cancelable 表明是否可以取消事件的默认行为
currentTarget 事件chu里程序当前正在处理事件的那个元素,
eventPhase:调用事件处理程序的阶段:1表示捕获阶段,2表示处理目标,3表示冒泡阶段
preventDefault取消事件的默认行为,如果是cancelable是true,就可以使用这个方法,
stopPropagation 取消事件的进一步捕获或冒泡,如果bubbles为true,则可以使用这个方法,
target:表示当前事件的目标,
type:表示被触发事件的类型,
view:与事件关联的抽象视图,等同于发生事件的window对象
 
事件流:
是描述的从页面接受事件的顺序,当几个都具有事件的元素层叠在一起的时候,那么你点击其中的一个元素,并不是只有当前被点击的元素会触发事件,而层叠在你点击范围的所有元素都会触发事件,事件流包括两种模式,冒泡和捕获.
事件冒泡,是从里往外逐个触发,事件捕获,是从外往里逐个触发,那么现代的浏览器默认情况下都是冒泡模型,
 
事件绑定及深入:
"DOM2级事件"定义了两个方法,用于添加和删除事件处理程序的操作:addEventListener()和removeEventListener(),所有的DOM节点都包含这两个方法,并且他们都接受三个参数:事件名,函数,冒泡或捕获的布尔值,(true表示捕获,false表示冒泡).这种绑定比我们自定义的好处就是:1,不需要自定义了,2,可以屏蔽相同的函数,3,可以设置冒泡和捕获:
IE事件处理函数:IE实现了与DOM中类似的两个方法,attachEvent()和detachEvent(),但俩个函数的弊端也是十分明显的:1,不支持捕获,只支持冒泡,2,IE添加事件不能屏蔽重复的函数,IE中的this指向的是window而不是DOM对象,在传统事件上,IE是无法接受到event对象的,但使用了attachEvent()却可以,这是有些区别的.
事件对象的其他补充:
relatedTarget:这个属性可以在mouseover和mouseout事件中获取从哪里移入和从哪里移除的DOM对象.

javascript中的cookie,以及事件解析的更多相关文章

  1. Javascript中关于cookie的那些事儿

    Javascript-cookie 什么是cookie? 指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).简单点来说就是:浏览器缓存. cookie由什 ...

  2. 探究JavaScript中的五种事件处理程序

    探究JavaScript中的五种事件处理程序 我们知道JavaScript与HTML之间的交互是通过事件实现的.事件最早是在IE3和Netscape Navigator 2中出现的,当时是作为分担服务 ...

  3. JavaScript中的Cookie 和 Json的使用

    JavaScript中的Cookie 和 Json的使用 JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.采用的是完全独立于编程语言的文本格式来存 ...

  4. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  5. 在Javascript中监听flash事件(转)

    在Javascript中监听flash事件,其实有两种做法: 1.在特定的环境下(例如专门制作的flash),大家约定一个全局函数,然后在flash的事件中用ExternalInterface.cal ...

  6. JavaScript中的鼠标滚轮事件详解

    JavaScript中的鼠标滚轮事件详解/*Firefox注册事件*/ ~~~Firefox: addEventListener('DOMMouseScroll', handler, false)if ...

  7. JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念

    JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念 <html> <body> <script type="t ...

  8. 浅谈JavaScript中的cookie

    什么是cookie?简单来说,cookie就是网站服务器存放在我们计算机上的一小段(一般大小不超过4KB)用来识别和记录用户的个人信息的文本.HTTP协议是一种没有“状态”的传输协议,也就是说,服务器 ...

  9. JavaScript中document.cookie

    “某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie.”—— MSIE 帮助.一般来说,Cookies 是 CGI 或类似,比 HTML 高级的文件.程序等创建 ...

随机推荐

  1. Oracle数据库中char, varchar, nvarchar的差异

    1. char      固定长度,最长n个字符.   2. varchar      最大长度为n的可变字符串. (n为某一整数,不同数据库,最大长度n不同)   char和varchar区别:   ...

  2. 转:DataTable.Compute()用法

    转自:http://www.cnblogs.com/fanyf/archive/2012/05/11/2495919.html一.DataTable.Compute()方法說明如下 作用: 计算用来传 ...

  3. 传智springMVC笔记

    springmvc 第一天 springmvc的基础知识 课程安排: 第一天:springmvc的基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器.处理器映射器.处 ...

  4. OpenFlow Switch学习笔记(三)——Flow Tables

    这次我们主要讨论下OpenFlow Switch的核心组件之一——Flow Tables,以了解其内部的 matching 以及 action handling 机制.下文将会分为几个部分来逐步详述O ...

  5. SourceTree不出现用户登录窗口,提示错误fatal: unable to access'...'; error setting certificate verify locations

    SourceTree不出现用户登录窗口,提示错误fatal: unable to access'...'; error setting certificate verify locations; .. ...

  6. 无法Ping通windows 7主机

    今天在使用Filezilla FTP_SERVER新建了一个windows主机上的FTP服务器. 建立完成之后,从MAC上无法进行连接也甚至连主机也无法连接,怀疑是防火墙的问题. 网上一搜确实是,但是 ...

  7. jsonp跨域请求数据实例——手机号码查询

    前言 网上有很多开放的api,我们在本地通过ajax获取数据时,总会碰到一个问题,那就是跨域!如果不借助php等,仅仅通过js怎么解决跨域的问题呢?或许jsonp是个不错的选择. 知识准备 上篇博客 ...

  8. 12. Integer to Roman

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  9. 转:Struts标签checkbox使用总结(默认选择设置)

    在使用struts标签html:checkbox 的时候,如何让checkbox框默认是选中的,一般情况 下都是当formbean里面该property的值和标签上value给定的值相等的时候,生成的 ...

  10. 使用move_base导航 ---13

    摘要: 原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 我们现在准备用move_base简单的移动机器人记住,一个“pose”在ros的意思是一个位置和 ...