JS实现简单路由器功能的方法
本文实例讲述了JS实现简单路由器功能的方法。分享给大家供大家参考。具体实现方法如下:
varwawa={};
wawa.Router=function(){
functionRouter(){
}
Router.prototype.setup=function(routemap,defaultFunc){
varthat=this,rule,func;
this.routemap=[];
this.defaultFunc=defaultFunc;
for(varruleinroutemap){
if(!routemap.hasOwnProperty(rule))continue;
that.routemap.push({
rule:newRegExp(rule,'i'),
func:routemap[rule]
});
}
};
Router.prototype.start=function(){
console.log(window.location.hash);
varhash=location.hash,route,matchResult;
for(varrouteIndexinthis.routemap){
route=this.routemap[routeIndex];
matchResult=hash.match(route.rule);
if(matchResult){
route.func.apply(window,matchResult.slice(1));
return;
}
}
this.defaultFunc();
};
returnRouter;
}();
varrouter=newwawa.Router();
router.setup({
'#/list/(.*)/(.*)':function(cate,id){
console.log('list',cate,id);
},
'#/show/(.*)':function(id){
console.log('show',id);
}
},function(){
console.log('defaultrouter');
});
router.start();
希望本文所述对大家的javascript程序设计有所帮助。