用js写的一个路由(简单实例)


Posted in Javascript onSeptember 24, 2016

前几天在网上看了一个大牛用js写了一个路由的,有一句代码一直不知道怎么回事,后来就自己写了一个,写的比较的粗糙,我觉得把面向对象的思想都搞得乱七八糟的,不过功能实现了。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>js实现路由</title>
</head>
<body>
  < a href=" " >white</ a>
  < a href="#/green" >green</ a>
  < a href="#/blue" >blue</ a>
  < a href="#/yellow" >yellow</ a>
</body>
</html>

<script>

  function Route(){
  }
  Route.prototype.open=function(route,callback){
    var arr={};
    arr[route]=callback;

    window.addEventListener('hashchange',function(){
      var temp=window.location.hash;
      for(var i in arr){
        if(i==temp.slice(1,temp.length)){
          arr[i]();
        }
      }
    })
  }
  window.Route=new Route();


  function change(color){
    var body=document.getElementsByTagName('body')[0];
    body.style.backgroundColor=color;
    console.log(color);
  }
  
  Route.open('/',function(){
    change('');
  });
  Route.open('/green',function(){
    change('green');
  });
  Route.open('/blue',function(){
    change('blue');
  });
  Route.open('/yellow',function(){
    change('yellow');
  });

</script>

以上就是小编为大家带来的用js写的一个路由(简单实例)的全部内容了,希望对大家有所帮助,多多支持三水点靠木~

Javascript 相关文章推荐
用javascript连接access数据库的方法
Nov 17 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
Apr 16 Javascript
常用的JavaScript验证正则表达式汇总
Nov 26 Javascript
Javascript学习笔记之数组的构造函数
Nov 23 Javascript
javascript正则表达式模糊匹配IP地址功能示例
Jan 06 Javascript
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
JS小球抛物线轨迹运动的两种实现方法详解
Dec 20 Javascript
vue select选择框数据变化监听方法
Aug 24 Javascript
Vue Router history模式的配置方法及其原理
May 30 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
Jul 17 Javascript
微信小程序实现滚动Tab选项卡
Nov 16 Javascript
vue下拉刷新组件的开发及slot的使用详解
Dec 23 Vue.js
简单的js表格操作
Sep 24 #Javascript
js面向对象实现canvas制作彩虹球喷枪效果
Sep 24 #Javascript
轻松实现js选项卡切换效果
Sep 24 #Javascript
在localStorage中存储对象数组并读取的方法
Sep 24 #Javascript
基于JavaScript实现跳转提示页面
Sep 24 #Javascript
JavaScript实现DOM对象选择器
Sep 24 #Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 #Javascript
You might like
剖析 PHP 中的输出缓冲
2006/12/21 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
2017/05/20 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
设定php简写功能的方法
2019/11/28 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
jQuery的ajax下载blob文件
2016/07/21 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
使用Python编写vim插件的简单示例
2015/04/17 Python
Python合并多个装饰器小技巧
2015/04/28 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
Django中使用Celery的教程详解
2018/08/24 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
介绍一下RMI的基本概念
2016/12/17 面试题
运动会广播稿80字
2014/01/23 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL