??xml version="1.0" encoding="utf-8" standalone="yes"?> 倒计Ӟ
<HTML>
<HEAD>
<META http-equiv='Content-Type' content='text/html; charset=gb2312'>
<TITLE>可输入的下拉?lt;/TITLE>
</HEAD>
<BODY >
<div style="position:relative;">
<span style="margin-left:100px;width:18px;overflow:hidden;">
<select style="width:118px;margin-left:-100px" onchange="this.parentNode.nextSibling.value=this.value">
<option value="www.taobao.com"> taobao </option>
<option value="www.baidu.com"> soft </option>
<option value="WEB开发?> WEB开发?</option>
</select></span><input name="box" style="width:100px;position:absolute;left:0px;">
</div>
</BODY></HTML>
]]>
]]>
Cookie由某个WWW|页在某客户Zq行讄。比?某个WWW|页已在一个用L计算Z讄了一个Cookie,其中存储的信息是该用Lw䆾?随机赋予该用L唯一标识),当该用户的浏览器q接该WWW站点?站点要求览器将Cookie送回,他的w䆾号就通过Cookie 传递给该网|在的WWW服务器。服务器上的一个CGIE序查找一个服务器端的文g以确定关于他的预讑ֆ宏V?br />
当某个服务器在客L计算Z讄Cookie?h意如果要让Cookie信息实写入文g,必须关闭览器。在览器未关闭之前,M新的或变化的Cookie都存攑֜内存中?br />
二、Cookie的特?br />
每个Cookie包含?个元?常用的有:name、value、expires、domain和secure。这些元素存放了q个Cookie的作用范围及实际的数据?br />
1.name q是每一个Cookie必须有的元素,它是该Cookie的名字。name元素是一个不含分受逗号和空格的字符丌Ӏ其命名方式与变量命名相同?br />
2.value value也是每个Cookie必须有的元素,它是该Cookie的倹{value元素是实际存放于Cookie中的信息。它是由M字符构成的字W串?br />
3.expires expires是一个Cookie的过期时间。没有设|expires元素的Cookie在用h开q接后过?但在用户关闭览器之前Cookie依然存在?br />
Cookie有一个过期时间ƈ{于它会从Cookie.txt文g中被删除。在它的位置被用来存攑֏一个Cookie?它依然存在着。过期的Cookie只是不被送往要求使用它的服务器?br />
expire是一个串,它的形式如下:
Wdy, DD-Mon-YY HH:MM:SS GMT
expires元素是可选的?br />
4.domain domain是设|某个Cookie的Web|页所在的计算机的域名。这?׃个站点创建的Cookie不会影响到另一个站点上的程序。对于较高层的域名如.com, .edu,?mil,域名中至有两个分隔W?.)。而对于较低层的域名如.cn, .uk?ca,域名中至有3个分隔符。demain元素自动地被设ؓ|页所在站点的基本域名。比?你的|页位于http://www.abc.com/~user,则该|页创徏的Cookie~省地对域abc.com有效。如果你希望你的Cookie 只应用于服务器www3.abc.com,那么你必d讄Cookie的时候指定?br />
只有拥有域名的站Ҏ能ؓ那个域名讄Cookie
5.path 一个Cookie可以被指定ؓ只针对一个站点的某一层次。如果一个Web站点要区分已注册的和未注册的客户,可以ؓ已经注册的客戯|Cookie,当注册过的客戯问该站点?他就可以讉K到只Ҏ册客h效的面。path是可选项,如果没有指定path,被~省地设|ؓ讄Cookie的页面的路径?br />
6.secure标志 secure是一个布?真或?。它的缺省gؓ假。如果它被设为真? q个Cookie只被览器认为是安全的服务器所C?
三、关于Cookie的一些限?
一个站点能Z个单独的客户最多设|?0个Cookie。如果一个站Ҏ两个服务?如www.abc.com和www3.abc.com)但没有指定域?Cookie的域名缺省地是abc.com。如果指定了切的服务器地址,则每个站点可以设|?0个Cookie--而不是d20个。不仅每个服务器能设|的Cookie数目是有限的,而且每个客户机最多只能存?00个Cookie。如果一个客h已有300个Cookie,q且一个站点在它上面又讄了一个新Cookie,那么,先前存在的某一个Cookie被删除?br />
每个Cookie也有自n的限制。Cookie不得过4KB(4096bytes),其中包括名字和其他信息?br />
四、javascript和Cookie
现在大家已经了解有关Cookie的一些基本概念了,让我们更q一步讨论Cookie。可以用javascript来很方便地编写函数用来创建、读取和删除Cookie。下?我们׃l这些函?
1.创徏Cookie
我们要进行的W一件事是要创Z个Cookie。下面给出的SctCookie()函数完成这一功能?br />
function SetCookit (name, value) {
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(argc>2)?argv[2]: null;
var path=(argc>3)? argv[3]: null;
var domain=(argc>4)? argv[4]: null;
var secure=(argc>5)? argv[5]: false;
documents.cookie=name+"="+escape
(value)+
((expires==null)?"":(";expires="
+expires.toGMTString()))+
((path==null)?"":(";path="+path))+
((domain==null)?"":(";domain="+
domain))+
((secure==true)?";secure":"");
}
SetCookie()只要求传递被讄的Cookie的名字和?但如果必要的话你可以讄其他4 个参数而不必改变这个函数。可选的参数必须用正的ơ序使用。如果不惌|某个参? 必须讄一个空丌Ӏ比?如果我们创徏的一个Cookie需要指定secure?但不惌|expires, patb或domain,可以像q样调用SetCokie(): SetCookie("MyNewCookie","Myvalue" ,"",","tyue);
2.dCookie
下面l出的函数GetCookie()用来d一个Cookie。当一个Cookie的请求被客户机收到时,该客h查找它的cookies.txt文g以进行匹配。这个函数首先匹配这个Cookie的名字。如果有多个同名的Cookie,它再匚w路径。函数完成匹配后q回q个Cookie的倹{如果客h中没有这个Cookie,或者\径不匚w,该函数返回一个NULL?br />
function GetCookie(name) {
var arg=name+ "=";
var alen=arg.length;
var clen=documents.cookie.length;
var i=0;
while (i<clen) {
var j=i+alen;
if(documents.cookie.substring(i,j)
==arg)
return getCookieVal(j);
i=documents.cookie.indexOf("",i)+1;
if(i==0)break;
}
return null;
}
函数中用了getCookieVal()函数,它是GetCookie()函数的补充。getCookieVal()C ookies.txt文g分解为片?q从一批Cookie中读出正的Cookie。该函数的实现如?
function getCookieVal(offset) {
var endstr=documents.cookie.indexOf
(";",offset);
if(endstr==-1) //没有指定其他元素
endstr=documents.cookie.length;
return unescape(documents.cookie.substring
(offset,endstr));
}
3.删除Cookie
删除一个Cookie很简?只需它的过期时间设为NULL。当用户断开q接?q个Cooki ep期了(没有q期旉的Cookie在览器关闭时被删?。下面的函数DeleteCookie() 说明了如何删除一?br />
Cookie:
function DeleteCookie(name) {
var exp=new Date();
exp.setTime(exp.getTime()-1);
//exp设ؓ已过期的旉
var cval=GetCookie(name);
documents.cookie=name+"="+cval+";
expires="+exp.toGMTString();
}
]]>
ExtJs最开始基?/span>YUI技术,由开发h?/span>Jack Slocum开发,通过参?/span>Java Swing{机制来l织可视化组Ӟ无论?/span>UI界面?/span>CSS样式的应用,到数据解析上的异常处理,都可是一ƾ不可多得的JavaScript客户端技?/span> 的精品?/span>
ExtJS: http://www.spket.com/demos/js.html spket插g(eclipse)
· Start Aptana and navigate the application menu to: Help → Software Updates → Find and Install… → Search for new features to install → New remote site…
· Name: “Spket”, Url: “http://www.spket.com/update/”
· Restart Eclipse
· Watch this Spket IDE Tutorial to see how to easily add Ext code assist (you can point it at the latest /src/ext.jsb to keep code assist up to date with the latest Ext version). The steps are basically:
o Window → Preferences → Spket → JavaScript Profiles → New
o Enter “ExtJS” and click OK
o Select “ExtJS” and click “Add Library”, then choose “ExtJS” from the dropdown
o Select “ExtJS” and click “Add File”, then choose the “ext.jsb” file in your “./ext-2.x/source” directory
o Set the new ExtJS profile as the default by selecting it an clicking the “Default” button on the right-hand side of the “JavaScript Profiles” dialog.
o Restart Eclipse
o Create a new JS file and type: Ext. and you should get the Ext Code completion options.
一个简单的例子Q?/span>
http://extjs.org.cn/node/83
不过上面的程序如果不用正则表辑ּQ而直接用split函数来分解可能更单,E序如下Q?/p>
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是Q?+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
匚wEmail地址的正则表辑ּQ\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匚w|址URL的正则表辑ּQhttp://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
利用正则表达式限制网表单里的文本框输入内容Q?/p>
用正则表辑ּ限制只能输入中文Qonkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正则表辑ּ限制只能输入全角字符Q?onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正则表辑ּ限制只能输入数字Qonkeyup="value=value.replace(/
[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正则表辑ּ限制只能输入数字和英文:onkeyup="value=value.replace(/
[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
|
|
YUI提供?/span>Event工具集简化了览器中事g驱动E序的编写,提供了一U简单的接口来定制事件和查浏览器中的event对象?/span>YUI事g工具集提供了自定义事件对?/span>(Custom Event)Q通过自定义事件对象可?/span>“发布”自己感兴的时刻或事Ӟ面中的YUIlg能够响应q些自定义的事gq做出回应?/span>
YUI对事件响应的序Q通过YUI Event工具集添加的事gQ默认是在冒泡过E中执行事g处理函数的。从DOM节点上来_是从子节点向根节点响应事件?/span>
<!-- Dependency -->
build/yahoo/yahoo-min.js
<!-- Event source file -->
build/event/event-min.js
Event?/span>Custom Event分别定义?/span>YAHOO.util.Event?/span>YAHOO.util.CustomEvent?/span>
YAHOO.util.Event.addListener(element,eventType,fn,obj,override)
参数Q?/span>
elementQؓl定事g的元?/span>idQ?span style="color: red">可以是一个数l,以支持批量操?/span>
eventTypeQؓ事gcd
fnQؓ事g响应的回调函?/span>
objQ当override?/span>trueӞ为回调函C入的参数对象Q当override?/span>falseӞ该参数被忽略?/span>
overrideQ?/span>
q回值类型:Boolean
功能Q?/span>l指定的elementl定事g响应函数
YAHOO.util.Event.removeListener:function(element,eventType,fn)
参数Q?/span>
elementQؓl定事g的元?/span>id,
eventTypeQ事件类?/span>
fnQؓ事g响应函数
q回值类型:Boolean
功能Q?/span>l指定的element解除l定事g
YAHOO.util.Event.purgeElement ( el , recurse , sType )
参数Q?/span>
elQؓl定事g的元?/span>id,
recurseQ?/span>Boolean|是否解除子节点的事gl定
sTypeQ事件类?/span>
q回值类型:Boolean
功能Q?/span>l指定的element解除l定的同一cd的事Ӟ也可以解除子节点上绑定的q一cd的事?/span>
YAHOO.util.on
addListener的函数别?/span>
YAHOO.util.Event.onAvailable ( p_id , p_fn , p_obj , p_override )
参数Q?/span>
p_idQؓl定事g的元?/span>id,
p_fnQؓ事g响应函数
p_objQ同addListener?/span>obj参数
p_overrideQ同addListener?/span>override参数
q回值类型:?/span>
功能Q?/span>当指定的element?/span>p_id出现Ӟ执行事g响应函数。如果在面初始化之前执行这一函数Q当面加蝲Ӟ可能q未完成ӞQ就会执行响应的事g响应函数Q如果放在页面加载之后执行这一函数Q将以固定的旉轮询Q当element可用时响应这一事g。这个轮询的的时间是可以配置的,~省的时间是10U一ơ?/span>
YAHOO.util.Event.onContentReady ( p_id , p_fn , p_obj , p_override )
参数Q?/span>
p_idQؓl定事g的元?/span>id,
p_fnQؓ事g响应函数
p_objQ同addListener?/span>obj参数
p_overrideQ同addListener?/span>override参数
q回值类型:?/span>
功能Q?/span>?/span>onAvailablecMQ但不同的是事g响应函数是等?/span>element可以安全的修改的时候才响应?/span>
YAHOO.util.Event.onDOMReady ( p_fn , p_obj , p_scope )
参数Q?/span>
p_fnQؓ事g响应函数
p_objQ同addListener?/span>obj参数
p_scopeQ同addListener?/span>override参数
q回值类型:?/span>
功能Q?/span>?/span>DOMW一ơ可用时执行响应函数?/span>
YAHOO.util.Event.preventDefault ( event)
参数Q?/span>
eventQ事件对?/span>
q回值类型:?/span>
功能Q?/span>L事g的缺省行为发生?/span>