TRS WCM默认分页脚本把页面链接全部生成,真是个恶梦。

改进之后:

TRS-WCM v6 客户端javascript分页脚本


    function Pager(settings){
        
var extend=function(tgt,src){
            
for(var p in src)
                tgt[p]
=src[p];
            
return tgt;
        };
        
var cfg=extend({
                       size:
1,                                //页数
                       current:0,                            //当前页码
                       beforeEnd:2,                        //首尾最少显示页数
                       visible:5,                            //中间可见页数
                       prevLabel:'上一页',                
                       nextLabel:
'下一页',                
                       ellipsis:
'<span>TRS-WCM v6 客户端javascript分页脚本</span>',    //省略标记
                       textboxEnabled:true,            //是否显示文本域
                       showAlways:false                //总是显示分页器
                       },settings || {});
        
        
if(!cfg.showAlways && cfg.size==1)
            
return false;
            
        
var prev=(cfg.size==1 || cfg.current==0)?
                    
'<span class="prev">'+cfg.prevLabel+'</span>':
                    
'<a href="'+cfg.prefix+(cfg.current==1?'':'_'+(cfg.current-1))+'.'+cfg.suffix+'" class="prev">'+cfg.prevLabel+'</a>';
                    
        
var next=(cfg.size==cfg.current+1)?
                    
'<span class="next">'+cfg.nextLabel+'</span>':
                    
'<a href="'+cfg.prefix+'_'+(cfg.current+1)+'.'+cfg.suffix+'" class="next">'+cfg.nextLabel+'</a>';
        
        
var first=(cfg.current==0)?
                    
'<span class="current">1</span>':
                    
'<a href="'+cfg.prefix+'.'+cfg.suffix+'">1</a>';
                    
        
var p=function(s){
            document.write(s);
        };
        
        p(prev);
        p(first);    
        
        
if(cfg.size>1){
            
var generator=function(begin,end){
                
for(var i=begin;i<end;i++){
                    cfg.current 
== i?
                    p(
'<span class="current">'+(i+1)+'</span>'):
                    p(
'<a href="'+cfg.prefix+'_' + i + '.'+cfg.suffix+'">'+(i+1)+'</a>');
                }
            };
            
            
//visible定义区间计算
            var posBegin=Math.max(0,cfg.current-(cfg.visible-Math.ceil(cfg.visible/2)));
            var posEnd=Math.min(posBegin+cfg.visible,cfg.size);
            
//头部
            generator(1,Math.min(cfg.beforeEnd,cfg.size));
            
//中间
            if(cfg.current>=posBegin){
                
if(cfg.beforeEnd<posBegin)        p(cfg.ellipsis);
                generator(Math.max(posBegin,cfg.beforeEnd),posEnd);
            };
            
//尾部
            if( posEnd!=cfg.size ){
                
if(cfg.size-cfg.beforeEnd>posEnd)        p(cfg.ellipsis);
                generator(Math.max(cfg.size
-cfg.beforeEnd,posEnd),cfg.size);        
            }
        };
        p(next);
        
        
if( cfg.textboxEnabled && cfg.size>cfg.beforeEnd*2+cfg.visible ){
            jump
="if(event.keyCode==13){var num=this.value;if(isNaN(num)||num<1||num>"+cfg.size+")alert('非法页码参数');else{num=num==1?'':'_'+(num-1);location.href='"+cfg.prefix+"'+num+'"+"."+cfg.suffix+"';}}";
            p(
'<input type="text" size="1" title="输入页码敲击回车键!" onkeypress="'+jump+'" />');
        };
    }
    
</script>
压缩后:
使用(在需要显示分页器的位置放入以下代码):
更具体地配置:

样例:


下载/预览:

/Files/ambar/javascript/trs-wcm-pagination-via-javascript.htm

相关文章: