function setCookie(name, value)
{
document.cookie = name + " = " + escape(value) + " ;domain=163.com " ;
var radJs = document.getElementById( " radJs " );
var txtStyle = document.getElementById( " txtStyle " );
var logType = "" ;
if (radJs.checked)
{
logType = " js " ;
txtStyle.value = " -1 " ;
}
else
{
logType = " jy " ;
txtStyle.value = " 34 " ;
}
document.cookie = " logType= " + logType + " ;expires= " + ( new Date( 2099 , 12 ,
31 )).toGMTString() + " ;domain=mail.163.com " ;
}
这个函数时根据用户选择设定邮箱风格,并保存在cookie中。
上面代码中主要掌握以下几点:
1,js设置cookie的方法:document.cookie="";
2,读取radio框的值方法:document.getElementById("id").checked;如果选中则返回true,否则为false;
3,设定cookie的值,过期时间以及域的方法:
设定自定义值:name=value的方法即可;
设定过期时间:expires=date;[注:date应该为GMT值,设定方法(new Date(年,月,日)).toGMTString();]
设定域:domain=mail.163.com
function fSetLogType()
{
var logType = getCookie("logType");
var radJs = document.getElementById("radJs");
var radJy = document.getElementById("radJy");
if (logType == "jy")
{
radJy.checked = true;
}
else
{
radJs.checked = true;
}
}
这段代码根据cookie值设定默认的选项框。
设定radio选定方法:document.getElementById('id').check=true;
function getBanner()
{
var bArray = new Array();
var i, url;
var ad = document.getElementById("top_ad");
bArray[0] = "http://mimg.163.com/new/banner/163_top_banner.swf";
bArray[1] = "http://mimg.163.com/new/banner/163_top_banner_letter.swf";
i = Math.round((bArray.length - 1) * Math.random());
url = bArray[i];
ad.innerHTML =
"<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" width=\"750\" height=\"70\"><param name=\"movie\" id=\"pBanner\" value=\"" + url + "\" /><embed id=\"eBanner\" src=\"" + url + "\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"750\" height=\"70\"></embed><param name=\"quality\" value=\"high\" /></object>";
}
这个函数为设定顶部随机显示的banner;主要注意以下几点:
1,定义数组:var bArray=new Array();
数组初始化:bArray[0]="ddddd";bArray[1]="ddddcc";
2,数学函数Math.round(),Math.random();
3,一个技巧(生成一个随机数组下标):i=Math.round((bArray.length-1)*Math.random());
然后取值:url=bArray[i],输出内容:ad.innerHTML=url
小知识:
round 方法
返回与给出的数值表达式最接近的整数。
Math.round(number)
必选项 number 参数是要舍入到最接近整数的值。
说明
如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。否则,round 返回小于等于 number 的最大整数。
function getCookie(name)
{
var search = name + "=";
if (document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if (offset != - 1)
{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == - 1)
end = document.cookie.length;
return unescape(document.cookie.substring(offset, end));
}
else
return ""
}
}
该函数作用是读取一个指定name的cookie值.
方法如下:
1,将name与"="相连,准备查询(var search=name+"=");
2,先判断cookie是否为空(document.cookie.length>0);
3,如果cookie不为空,用indexOf函数检索内容(offset=document.cookie.indexOf(search));如果检索内容不存在则返回-1,否则返回第一个字符所在的索引位置(从0开始)。
offset+=search.length;意义为把索引位置转到“=”的后面,便于读取值。
end=document.cookie.indexOf(";",offset) //从offset位置开始检索";"的索引位置,如果检索不到则将cookie长度赋给end字符串,即检索到最后。
4,通过document.cookie.substring(offset,end)读取值内容。
5,由于163在设定cookie值时用escape做了编码,所以要通过unescape解码。
小知识:
indexOf 方法
返回 String 对象内第一次出现子字符串的字符位置。
strObj.indexOf(subString[, startIndex])
参数
strObj
必选项。String 对象或文字。
subString
必选项。要在 String 对象中查找的子字符串。
starIndex
可选项。该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。
说明
indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。
如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。
从左向右执行查找。否则,该方法与 lastIndexOf 相同。
示例
下面的示例说明了 indexOf 方法的用法。
function IndexDemo(str2){
var str1 = "BABEBIBOBUBABEBIBOBU"
var s = str1.indexOf(str2);
return(s);
}