A JavaScript Fancier

伟大的javascript技术研究中...

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  304 随笔 :: 0 文章 :: 479 评论 :: 0 Trackbacks

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);
}

posted on 2006-06-16 22:24 Yemoo'S JS Blog 阅读(1235) 评论(0)  编辑 收藏 引用 所属分类: javascript代码研究
只有注册用户登录后才能发表评论。