JS实现简单路由器功能的方法
作者:bea
本文实例讲述了JS实现简单路由器功能的方法。分享给大家供大家参考。具体实现方法如下: var wawa = {};wawa.Router = function(){ function Router(){ } Router.prototype.setup = function(routemap, defaultFunc){ var that = this, rule, func; this.routemap = []; this.defaultFun
本文实例讲述了JS实现简单路由器功能的方法。分享给大家供大家参考。具体实现方法如下:
var wawa = {};
wawa.Router = function(){
function Router(){
}
Router.prototype.setup = function(routemap, defaultFunc){
var that = this, rule, func;
this.routemap = [];
this.defaultFunc = defaultFunc;
for (var rule in routemap) {
if (!routemap.hasOwnProperty(rule)) continue;
that.routemap.push({
rule: new RegExp(rule, 'i'),
func: routemap[rule]
});
}
};
Router.prototype.start = function(){
console.log(window.location.hash);
var hash = location.hash, route, matchResult;
for (var routeIndex in this.routemap){
route = this.routemap[routeIndex];
matchResult = hash.match(route.rule);
if (matchResult){
route.func.apply(window, matchResult.slice(1));
return;
}
}
this.defaultFunc();
};
return Router;
}();
var router = new wawa.Router();
router.setup({
'#/list/(.*)/(.*)': function(cate, id){
console.log('list', cate, id);
},
'#/show/(.*)': function(id){
console.log('show', id);
}
}, function(){
console.log('default router');
});
router.start();
希望本文所述对大家的javascript程序设计有所帮助。
有用 | 无用
var wawa = {};
wawa.Router = function(){
function Router(){
}
Router.prototype.setup = function(routemap, defaultFunc){
var that = this, rule, func;
this.routemap = [];
this.defaultFunc = defaultFunc;
for (var rule in routemap) {
if (!routemap.hasOwnProperty(rule)) continue;
that.routemap.push({
rule: new RegExp(rule, 'i'),
func: routemap[rule]
});
}
};
Router.prototype.start = function(){
console.log(window.location.hash);
var hash = location.hash, route, matchResult;
for (var routeIndex in this.routemap){
route = this.routemap[routeIndex];
matchResult = hash.match(route.rule);
if (matchResult){
route.func.apply(window, matchResult.slice(1));
return;
}
}
this.defaultFunc();
};
return Router;
}();
var router = new wawa.Router();
router.setup({
'#/list/(.*)/(.*)': function(cate, id){
console.log('list', cate, id);
},
'#/show/(.*)': function(id){
console.log('show', id);
}
}, function(){
console.log('default router');
});
router.start();
希望本文所述对大家的javascript程序设计有所帮助。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 究竟什么是Node.js?Node.js有什么好处?
- js实现发送验证码后的倒计时功能
- JS实现两表格里数据来回转移的方法
- 原生JS和JQuery动态添加、删除表格行的方法
- jQuery实现html表格动态添加新行的方法
- jquery实现用户打分评分特效
- nodejs实现遍历文件夹并统计文件大小
- 用Node.js通过sitemap.xml批量抓取美女图片
- javascript转换静态图片,增加粒子动画效果
- jQuery实现限制textarea文本框输入字符数量的方法
- nodejs实现获取某宝商品分类
- Nodejs实现批量下载妹纸图
- javascript实现行拖动的方法
- JavaScript操作Cookie方法实例分析
- JavaScript通过事件代理高亮显示表格行的方法
- jquery预加载图片的方法
- jQuery仿gmail实现fixed布局的方法
- js实现键盘Enter键提交表单的方法
- js实现简单锁屏功能实例