TRS-WCM v6 客户端javascript分页脚本
TRS WCM默认分页脚本把页面链接全部生成,真是个恶梦。
改进之后:
TRS WCM默认分页脚本把页面链接全部生成,真是个恶梦。
改进之后:
Code
<script type="text/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></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>
<script type="text/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></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