一个简单的欢迎cookie
1,创建cookie
利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息。
<html> <head> <script type="text/javascript"> //读取cookie标签对应值 //c_name:cookie标签 function getCookie(c_name) { if (document.cookie.length>0)//cookie不为空 { c_start=document.cookie.indexOf(c_name + "=")//获取c_name标签的起始位置 if (c_start!=-1)//存在c_name标签 { c_start=c_start + c_name.length+1//获取c_name值的起始位置 c_end=document.cookie.indexOf(";",c_start)//获取c_name值的结束为止 if (c_end==-1) //c_start后不存在“;” c_end=document.cookie.length//获取cookie结束位置 return unescape(document.cookie.substring(c_start,c_end))//返回c_name值 } } return "" } //写入cookie标签对应值 //c_name:cookie标签;value:标签对应值;expiredays:有效期 function setCookie(c_name,value,expiredays) { var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays)//设置有效期 document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : "; expires="+exdate.toGMTString())//有效期有意义,则将编码后的value赋值给c_name并添加有效期标签 } //读取cookie function checkCookie() { username=getCookie('username')//读取username标签值 if (username!=null && username!="")//username标签值有意义 {alert('Welcome again '+username+'!')//提示框} else //username标签值无意义 { username=prompt('Please enter your name:',"")//输入框 if (username!=null && username!="")//输入框值有意义 { setCookie('username',username,365)//写入username标签值 } } } </script> </head> <body onLoad="checkCookie()"> </body> </html>
2,indexOf(String.indexOf 方法)
字符串的IndexOf()方法搜索在该字符串上是否出现了作为参数传递的字符串,如果找到字符串,则返回字符的起始位置 (0表示第一个字符,1表示第二个字符依此类推)如果说没有找到则返回 -1
返回 String 对象内第一次出现子字符串的字符位置。
public indexOf(value:String, [startIndex:Number]) : Number
搜索字符串,并返回在调用字符串内 startIndex
位置上或之后找到的 value
的第一个匹配项的位置。此索引从零开始,这意味着字符串中的第一个字符被视为位于索引 0 而不是索引 1 处。如果未找到value
,该方法会返回 -1。
参数
value:String
- 一个字符串;要搜索的子字符串。
startIndex:Number
[可选] - 一个整数,指定搜索的开始索引。
返回
Number
- 指定子字符串的第一个匹配项的位置,或 -1。
--------------------------------------------------------------------------------------------------------------------------------------------------
indexOf 方法
返回 String 对象内第一次出现子字符串的字符位置。
strObj.indexOf(subString[, startIndex])
参数
strObj
必选项。String 对象或文字。
subString
必选项。要在 String 对象中查找的子字符串。
starIndex
可选项。该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。
说明
indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。
如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。
从左向右执行查找。否则,该方法与 lastIndexOf 相同。
3,escape() 函数
escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
返回值:已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。
提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。
注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。