javascript的特殊功能


<script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

<script src="http://wz.csdn.net/javascripts/vote.js" type="text/javascript"></script>  javascript+htc实现客户端排序   <script src="http://blog.csdn.net/count.aspx?ID=1878866&Type=Rank" type="text/javascript"></script> 文章指数:0   CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。

参考了部分网上下载的代码并进行了修改,最初代码出处已经忘记了,只能向最初的代码提供者说sorry了

common.css

 /*全局链接样式*/
a:link 
{font-size:9pt; color:#000000; text-decoration:none;}
a:visited 
{font-size:9pt; color:#000000; text-decoration:none;}
a:active 
{font-size:9pt; color:#1168A1; text-decoration:none;}
a:hover 
{font-size:9pt; color:#1168A1; text-decoration:none;}


/*自定义链接样式*/
.link01:link 
{font-size:9pt; color:#000000; text-decoration:none;}
.link01:visited 
{font-size:9pt; color:#000000; text-decoration:none;}
.link01:active 
{font-size:9pt; color:#000000; text-decoration:none;}
.link01:hover 
{font-size:9pt; color:#000000; text-decoration:none;}


/*批量添加的自定义链接样式*/
.tblink a:link 
{font-size:9pt; color:#f96c05; text-decoration:none;}
.tblink a:visited 
{font-size:9pt; color:#f96c05; text-decoration:none;}
.tblink a:active 
{font-size:9pt; color:#000000; text-decoration:none;}
.tblink a:hover 
{font-size:9pt; color:#000000; text-decoration:none;}


/*批量添加的自定义链接样式*/
.tblink1 a:link 
{font-size:9pt; color:#24798C; text-decoration:none;}
.tblink1 a:visited 
{font-size:9pt; color:#24798C; text-decoration:none;}
.tblink1 a:active 
{font-size:9pt; color:#24798C; text-decoration:none;}
.tblink1 a:hover 
{font-size:9pt; color:#24798C; text-decoration:none;}

/*批量添加的自定义链接样式*/
.tblink2 a:link 
{font-size:9pt; color:#ffffff; text-decoration:none;}
.tblink2 a:visited 
{font-size:9pt; color:#ffffff; text-decoration:none;}
.tblink2 a:active 
{font-size:9pt; color:#ffffff; text-decoration:none;}
.tblink2 a:hover 
{font-size:9pt; color:#ffffff; text-decoration:none;}

/*全局页面样式*/
body 
{
    margin
:0 0 0 0;
    font-size
:9pt;
    font-family
:"宋体",arial; 
    
/*下面七行是滚动条的样式,IE5无效*/
    scrollbar-arrow-color
:#000000;
    scrollbar-track-color
:#ebebeb;
    scrollbar-highlight-color
:#ffffff;
    scrollbar-face-color
:#f0f0f0;
    scrollbar-shadow-color
:#dedede;
    scrollbar-3dlight-color
:#dedede;
    scrollbar-darkshadow-color
:#eff1f4;
    background-color
:#FFFFFF;

}

/*全局表格样式*/
table,tr,td,thead,th 
{
    font-size
:9pt;
    font-family
:"宋体",arial; 
    word-break
:break-all;
    word-wrap
:break-word;
    border-collapse
:collapse;
}
 


/*最常用的表格样式_浅兰*/
.table 
{
    color
:#1168A1;
    border
:2px solid #ffffff;
    background-color
:#EEF9FF;
    padding
:1 3 1 3;
}

.table tr 
{height:25px;} 
.table td 
{border:2px solid #ffffff;} 
.table thead 
{height:25px;} 
/*横表头_兰(用在表头)*/
.tablehead 
{
    font
: 9pt "宋体",arial;
    color
:#064976;
    background-color
:#CDECFF !important;
    cursor
:hand;
    
/*可以用下面的方法自定义特殊的表头高度*/
    
/*height:30px !important;*/
}


/*横向颜色变换_浅兰&浅浅兰*/
.tbline 
{
    color
:#1168A1;
    border
:2px solid #ffffff;
    padding
:1 3 1 3;
}

.tbline tr 
{
    height
:25px;
    background-color
:expression((this.sectionRowIndex%2==0)?"#f7f7f7":"#EFFBFF");
}

.tbline td 
{
    border
:2px solid #ffffff;
}
 
.tbline th 
{
    border
:2px solid #ffffff;
    background-color
:#CDECFF !important;
    cursor
:hand;
}

sorttable.htc

<!-- 表格排序组件:sorttable.htc -->
< PUBLIC:COMPONENT tagName = " TBL " >  
< PUBLIC:ATTACH onevent = " show() "  event = " onmousedown " />  
< PUBLIC:ATTACH onevent = " resetGrid() "  event = " oncontentready " />
< PUBLIC:PROPERTY NAME = " sort "  PUT = " doSort " />
< PUBLIC:PROPERTY NAME = " offset " />
< PUBLIC:METHOD NAME = " buildSequence " />
< script language = " javascript " >  
/*
公共属性及方法说明:
sort:字符串,当设置这个属性的时候,将进行排序操作。其值的格式见doSort函数
offset:数字,偏移量,例如,当offset=1,sort='1 DESC'时,原来是将第一列逆序排列,现在变成第二列逆序,可以为负值
show(index):先当于触发点击第几列,如果有THEAD,那么TBODY的第一列的Index值为1,否则为0
*/


// SelectedItem用于储存有焦点的列的指针
var  SelectedItem = "" ,StartRow,EndRow,len,SortIndex = null ;

// 初始化
function  resetGrid() {
    
var trs=element.rows;
    len
=trs.length;
    
//滤掉THEAD部分
    //alert(len);31
    for(StartRow=0;StartRow<len;StartRow++){
        
if(getParentByTag(trs[StartRow],"THEAD")==0break;
    }

    
//滤掉TFOOT部分
    for(EndRow=len-1;EndRow>StartRow;EndRow--){
        
if(getParentByTag(trs[EndRow],"TFOOT")==0break;
    }

    len
-=StartRow+(len-1-EndRow);
}

// 捕获↑和↓键,前者为纪录上移,后者为记录下移
function  PasteRow() {
    
var code=event.keyCode;
    
if(code!=38&&code!=40return true;
    
var index;
    
try{
        index
=(code==38)?(element.SelectedItem.rowIndex-1):(element.SelectedItem.rowIndex+1);
    }
catch(e){
        index
=1;
    }

    element.show(index);
}

// 排序,曾经尝试用XSL排序,不成功,因为使用XML有版本的限制
function  doSort(col) {
    
//COL的字符串格式为:NUMBER+" "+"ASC/DESC",NUMBER指的是第几列,第一列的NUMBER为1,而不是0,例如:1 ASC
    var flag,T,TimeCost;
    
//测试排序需要的时间
    T=new Date().getTime();
    col
=col.split(" ");
    
//ASC为降序排列,DESC为逆序
    if(col.length!=2){
        flag
=-1;
    }
else{
        
if(col[1].toUpperCase()=="ASC"{
            flag
=1;
        }
else{
            flag
=-1;
        }

    }

    col
=parseInt(col[0]);
    
if(isNaN(col)) {
        
//alert("无效的sort属性,正确格式为'[Number] [ASC/DESC]'!")
        return;
    }

    col
-=1;
    
if(!isNaN(parseInt(offset))) {
        col
+=parseInt(offset);
    }

    resetGrid();
    
//以下不需要加Alert,只作操作失效处理
    //行数<1
    if(len<1return;
    
//如果是非常规排序(比如某些CELL是跨列[COLSPAN>1]或者跨行[ROWSPAN>1],那么排序可能失效)
    try{
        
var trs=element.rows;
        
var ary=new Array();
        
for(var i=0;i<len;i++){
            ary[i]
=new Array(trs[i+StartRow],trs[i+StartRow].cells(col).innerText);
        }

        ary.sort(
new Function("a","b","return do_compair(a[1],b[1],"+flag+")"));
        
for(i=len-1;i>=0;i--){
            
var x=ary[i][0].rowIndex;
            element.moveRow(x,StartRow);
        }

        
/*
        排序完之后,触发show_sort_action函数。
        flag:返回ASC或者DESC,表示是升序还是降序排列
        SortIndex:原来排序的列的cellIndex
        col:新排序的列的cellIndex
        其中,一个表的第一列的cellIndex值为0
        
*/

        
if(!isNaN(parseInt(offset))) col-=offset;
        
if(typeof(show_sort_action)=="function"){
            show_sort_action(SortIndex,col,(flag
==1)?"ASC":"DESC");
        }

        SortIndex
=col;
    }
catch(Exception){
    }

    
//测试完毕
    TimeCost=new Date().getTime()-T;
}

// 当点击一个行时,显示的信息
function  show(obj) {
    
//如果OBJ是null,那么判断event.srcElement是否属于该TABLE,如果不是,return
    if(obj==null){
        
var e=event.srcElement;
        
var e1=e;
        
if(event.button!=1||e==nullreturn;
        obj
=getParentByTag(e);
        
if(obj==0||obj.rowIndex>EndRow) return;
        
        
//如果第一列是序号列,不进行点击列名排序
        var objcol;
        objcol
=getParentByTag(e,"TH");
        
if (objcol.cellIndex==0){
            
if(objcol.innerText=="序号"){
                
return;
            }

        }

        
//如果点击的是THEAD部分,那么将进行排序
        if(obj.rowIndex<StartRow){
            e
=getParentByTag(e1,"TD");
            
if(e==0{
                e
=getParentByTag(e1,"TH");
                
if(e==0{
                    
return;
                }

            }

            
var col=e.cellIndex+1;
            
if(e.CellSort!="ASC"){
                e.setAttribute(
"CellSort","ASC");
            }
else{
                e.setAttribute(
"CellSort","DESC");
            }

            doSort(
""+col+" "+e.CellSort);
            
//如果第一列是序号列,重新编排序号
            buildSequence();
        }

    }

}

// 如果有序号按序号重新排序,判断标志0行0列=="序号"
function  buildSequence() {
    
var xh=1;
    
//alert(element.rows[0].cells[0].innerText);
    if(element.rows[0].cells[0].innerText=="序号"){
        
for(i=StartRow;i<=EndRow;i++){
            element.rows[i].cells[
0].innerText=xh++;
        }

    }

}

// 获得产生事件并且tagName=tag的元素
function  getParentByTag(x,tag) {
    
if(tag==null){
        tag
="TR";
    }

    
if(x.tagName==tag){
        
return x;
    }

    
var y=x.parentElement;
    
if(y==null||!element.contains(y)){
        
return 0;
    }

    
if(y.tagName!=tag){
        
return getParentByTag(y,tag);
    }

    
return y;
}

// 设置排序后的标志
function  show_sort_action(oindex,index,flag) {
    
var tag;
    
if(oindex!=null){
        
var e1=element.rows[0].cells(oindex).all[0];
        x
=e1.innerText;
        x
=x.replace("","");
        x
=x.replace("","");
        e1.innerText
=x;
    }
 
    
if(flag=="ASC"){
        tag
="";
    }
else{
        tag
="";
    }

    
var e=element.rows[0].cells(index).all[0];
    e.innerText
+=tag;
}

</ script >

< script language = vbscript >
' //用文本方式比较两个字符串,如果用ANSI方式,那么汉字比较不出来,这虽然导致排序比较慢,但是有效
function do_compair(str1,str2,flag)
    do_compair=strcomp(str1,str2,1)
    if flag<> 1 then do_compair=-do_compair
end function
</script>
</PUBLIC:COMPONENT>

sorttable.htm

<!-- 暂时引用yqtccxjy的css -->
< link  href ="common.css"  rel ="stylesheet"  type ="text/css" >
<!-- 引用排序表格的htc -->
< table  id ="anyname"  style ="behavior:url(sorttable.htc)"  width ="70%"  border ="0"  align ="center"  cellpadding ="0"  cellspacing ="0"  class ="tbline tblink" >
< thead  class ="tbline" >
  
< th  width ="8%" >< span > 序号 </ th >
  
< th  width ="14%" >< span > 报修单号 </ th >
  
< th  width ="13%" >< span > 用户姓名 </ th >
  
< th  width ="15%" >< span > 表单状态 </ th >
  
< th  width ="20%" >< span > 用户部门 </ th >
  
< th  width ="15%" >< span > 报修时间 </ th >
  
< th  width ="15%" >< span > 完成时间 </ th >
</ thead >
< tr  class ="tbline" >< td  align ="center" > 1 </ td >< td  > RP0200001 </ td >< td  >< href ="#" > 王晓蓉 </ a ></ td >< td  > 已经完成 </ td >< td  > 技术支持处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-31 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 2 </ td >< td  > RP0200002 </ td >< td  >< href ="#" > 尹佳林 </ a ></ td >< td  > 已经完成 </ td >< td  > 服务处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-30 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 3 </ td >< td  > RP0200003 </ td >< td  >< href ="#" > 曹丽苹 </ a ></ td >< td  > 没有完成 </ td >< td  > 发电规划处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-30 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 4 </ td >< td  > RP0200004 </ td >< td  >< href ="#" > 梁智泉 </ a ></ td >< td  > 已经完成 </ td >< td  > 质保部 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-30 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 5 </ td >< td  > RP0200005 </ td >< td  >< href ="#" > 胡小姐 </ a ></ td >< td  > 已经完成 </ td >< td  > 仪控处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-30 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 6 </ td >< td  > RP0200006 </ td >< td  >< href ="#" > 王晓蓉 </ a ></ td >< td  > 没有完成 </ td >< td  > 技术支持处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-31 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 7 </ td >< td  > RP0200007 </ td >< td  >< href ="#" > 余先生 </ a ></ td >< td  > 已经完成 </ td >< td  > 质保部 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-30 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 8 </ td >< td  > RP0200008 </ td >< td  >< href ="#" > 刘宝鹏 </ a ></ td >< td  > 没有完成 </ td >< td  > 静机处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-30 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 9 </ td >< td  > RP0200009 </ td >< td  >< href ="#" > 王晓蓉 </ a ></ td >< td  > 已经完成 </ td >< td  > 技术支持处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-31 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 10 </ td >< td  > RP0200010 </ td >< td  >< href ="#" > 王保东 </ a ></ td >< td  > 没有完成 </ td >< td  > 电气处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-11-01 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 11 </ td >< td  > RP0200011 </ td >< td  >< href ="#" > 梁建明 </ a ></ td >< td  > 已经完成 </ td >< td  > 电气处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-31 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 12 </ td >< td  > RP0200012 </ td >< td  >< href ="#" > 蔡源之 </ a ></ td >< td  > 已经完成 </ td >< td  > 培训中心 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-30 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 13 </ td >< td  > RP0200013 </ td >< td  >< href ="#" > 姚雪鸿 </ a ></ td >< td  > 没有完成 </ td >< td  > 二核运行处 </ td >< td  > 2002-10-30 </ td >< td  > 2002-10-30 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 14 </ td >< td  > RP0200014 </ td >< td  >< href ="#" > 张延年 </ a ></ td >< td  > 已经完成 </ td >< td  > 服务处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-01 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 15 </ td >< td  > RP0200015 </ td >< td  >< href ="#" > 邢菊茹 </ a ></ td >< td  > 已经完成 </ td >< td  > 技术部 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-01 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 16 </ td >< td  > RP0200016 </ td >< td  >< href ="#" > 崔忠科 </ a ></ td >< td  > 没有完成 </ td >< td  > 技术支持处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-04 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 17 </ td >< td  > RP0200017 </ td >< td  >< href ="#" > 崔忠科 </ a ></ td >< td  > 没有完成 </ td >< td  > 技术支持处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-01 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 18 </ td >< td  > RP0200018 </ td >< td  >< href ="#" > 王东 </ a ></ td >< td  > 没有完成 </ td >< td  > 二核运行处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-01 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 19 </ td >< td  > RP0200019 </ td >< td  >< href ="#" > 王卉 </ a ></ td >< td  > 没有完成 </ td >< td  > 运行处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-01 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 20 </ td >< td  > RP0200020 </ td >< td  >< href ="#" > P201027 </ a ></ td >< td  > 已经完成 </ td >< td  > 工程处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-01 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 21 </ td >< td  > RP0200021 </ td >< td  >< href ="#" > Z3 </ a ></ td >< td  > 已经完成 </ td >< td  > 综管处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-04 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 22 </ td >< td  > RP0200022 </ td >< td  >< href ="#" > 张大勇 </ a ></ td >< td  > 没有完成 </ td >< td  > 技术支持处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-01 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 23 </ td >< td  > RP0200023 </ td >< td  >< href ="#" > 邱小姐 </ a ></ td >< td  > 已经完成 </ td >< td  > 综合计划处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-01 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 24 </ td >< td  > RP0200024 </ td >< td  >< href ="#" > 周世梁 </ a ></ td >< td  > 已经完成 </ td >< td  > 设备管理处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-04 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 25 </ td >< td  > RP0200025 </ td >< td  >< href ="#" > 黄卫刚 </ a ></ td >< td  > 已经完成 </ td >< td  > 核安全和环保处 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-04 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 26 </ td >< td  > RP0200026 </ td >< td  >< href ="#" > 蔡部长 </ a ></ td >< td  > 已经完成 </ td >< td  > 人力资源部 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-06 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 27 </ td >< td  > RP0200027 </ td >< td  >< href ="#" > 蔡先生 </ a ></ td >< td  > 已经完成 </ td >< td  > 维修部 </ td >< td  > 2002-10-31 </ td >< td  > 2002-11-04 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 28 </ td >< td  > RP0200028 </ td >< td  >< href ="#" > 辛克塞 </ a ></ td >< td  > 已经完成 </ td >< td  > 二核运行处 </ td >< td  > 2002-11-01 </ td >< td  > 2002-11-05 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 29 </ td >< td  > RP0200029 </ td >< td  >< href ="#" > 南雷 </ a ></ td >< td  > 已经完成 </ td >< td  > 电气处 </ td >< td  > 2002-11-01 </ td >< td  > 2002-11-05 </ td ></ tr >
< tr  class ="tbline" >< td  align ="center" > 30 </ td >< td  > RP0200030 </ td >< td  >< href ="#" > 汪奏耀 </ a ></ td >< td  > 已经完成 </ td >< td  > 服务处 </ td >< td  > 2002-11-01 </ td >< td  > 2002-11-14 </ td ></ tr >
</ table >  

<!-- 下面代码仅供测试使用 -->
< input  type ="button"  value ="testsort"  onclick ="testSort()" >
< script  language ="javascript" >
//使用Sort属性进行排序
function testSort(){
    anyname.sort
="3 asc";
    anyname.buildSequence();
}

</ script >


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1878866

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值