今天看了1下前面写的,好像缺乏交流性,周末再来弄吧 -0-

今天看了browser 的 location 和 history

location属性
 //    //location.hash 性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)
// console.log(location.host); //获得location的端口
// //或www.xxx.com止 //[[设置或返回]]当前 URL 的主机名称和端口号
//
// console.log(location.hostname); //返回服务域名
// //www.xxx.com:80 //[[设置或返回]]当前 URL 的主机名
//
// console.log(location.href); //返回该页面的url
// //www.xxx.com: //[[设置或返回]]当前显示的文档的完整 URL
// //location.href = 'baidu.com'; 调用改变当前url
//
// console.log(location.port); //端口:后的内容
// //"8080" //[[设置或返回]]或返回当前 URL 的端口部分
//
// console.log(location.protocol); //http://[[设置或返回]]当前 URL 的协议
//
// console.log(location.search); //?后的内容
// //有待研究吧,没效果 //[[设置或返回]]当前 URL 的查询部分(问号 ? 之后的部分)
// //我猜这个功能可能可以了解用户的网内轨迹
//
// //decodeURIComponent() 对编码后的 URI 进行解码:
// //就1个转码函数,转的码的作用有待研究

Location方法
 //    //location.assign()
// window.location = "www.baidu.com" 直接改变当前url //效果一样
// location.href = "www.baidu.com";
// location.assign('www.baidu.com');
//
// //location.replace
// //不会在 History 对象中生成一个新的记录。当使用该方法时,新的 URL 将覆盖 History 对象中的当前记录
// setTimeout(function(){
// console.log(1);
// location.replace("baidu.com")//p209 阻止用户返回上1页面
// },1000)
//
// //str.replace必须两个参数,这里的 replace 是 location 的方法
// var str = "abcdefghijklnm";
// console.log(str.replace("abcd",''));
//
// //location.reload() //这个方法会一直load,慎用
// location.reload(); //重新加载,有可能是从缓存中加载
// location.reload(true); //重新加载,从服务器重新加载
//
// setTimeout(function(){
// location.reload();
// //并且reload()调用之后的代码可能也不会执行,网络原因系统资源等因素,
// //最好放在最后一行
// return false; //没效果
// },5000)
// 个人认为这个真没必要用,reload()是会把整个文档从新加载
//
// 若需要部分组件定时更新数据,用ajax就好
// 这是写的简单定时更新数据

//history
 //    history.go(-1);             //后退
// history.go(1); //前进1页
// history.go(2); //前进2页
//
// history.go("baidu.con"); //跳转到最近的baidu.com页面 //history.back(); //后退一页;
//history.forward(); //前进一页;
//hiseory.length; //下标0开始第1页

简单理由封装

参考:http://blog.csdn.net/sunxinty/article/details/52586556
作者:SunxHome

     function Router(){
this.routes = {};
this.currentUrl = '';
};
Router.prototype.route = function(path,callback){
this.routes[path] = callback || function(){};
};
Router.prototype.refresh = function(){
this.currentUrl = location.hash.slice() || '/';
this.routes[this.currentUrl]();
};
Router.prototype.init = function(){
window.addEventListener('load',this.refresh.bind(this),false);
window.addEventListener('hashchange',this.refresh.bind(this),false)
}; window.Router = new Router();
window.router.init();
 

[browser location和history] 简单实现了个路由[转载]的更多相关文章

  1. match,location,history

    哇,平常写路由时基本就是简单的按照组件给的示例写,从来没有考虑为什么,又遇见了路由相关的问题,先记录一下问题,好好捋一下,哎,好香要个大佬来带带我呀,每次遇到问题要解决好久 问题: 判断是否登录之后跳 ...

  2. location 、history

    location.href= location.reload() history.go()  0   1  -1 history.back() history.forward() history.le ...

  3. location和history

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. (cljs/run-at (JSVM. :browser) "命名空间就这么简单")

    前言  一个cljs文件定义一个命名空间,通过命名空间可以有效组织代码,这是构建大型系统必备的基础设施.本篇我们就深入理解cljs中的命名空间吧! 好习惯从"头"开始 每个cljs ...

  5. JS---BOM基本知识 (顶级对象,系统对话框,加载事件,location对象, history对象, navigator对象)

    BOM JavaScript分三个部分: 1. ECMAScript标准---基本语法 2. DOM--->Document Object Model 文档对象模型,操作页面元素的 3. BOM ...

  6. BOM 3.1 location对象 | history对象 | navigator对象 | 定时器 | 三大系列

    JavaScript分三个部分: 1. ECMAScript标准---基本语法 2. DOM--->Document Object Model 文档对象模型,操作页面元素的 3. BOM---& ...

  7. Location 位置 history

    拆分出来地址  让地址各归其位 search案例 查找历史记录跳转

  8. 学习记录----简单的原生js路由

    在以前的web程序中,路由字眼只出现在后台中.但是随着SPA单页面程序的发展,便出现了前端路由一说.单页面顾名思义就是一个网站只有一个html页面,但是点击不同的导航显示不同的内容,对应的url也会发 ...

  9. 分享php中四种webservice实现的简单架构方法及实例[转载]

    [转载]http://www.itokit.com/2012/0417/73615.html 本人所了解的webservice有以下几种:PHP本身的SOAP,开源的NUSOAP,商业版的PHPRPC ...

随机推荐

  1. Python使用openpyxl操作excel表格

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 ht ...

  2. JS---案例:美女时钟

    案例:美女时钟 思路: 打开页面就有图片按每秒1张的顺序轮换,用到了日期对象,获取小时和秒. 封装到一个命名函数后,为了使页面打卡就有图片的轮换,先调用下f1,再设置setInterval <! ...

  3. Android 程序分析环境搭建-开发环境搭建

    1.1  JDK 安装 JDK 的配置,初学java 开发,那是必须会的. 下载,遇到的问题就是要注册oracle 的账号,还有你要下载特定版本,比如jdk 1.7,jdk 1.6,很难找到在哪里.解 ...

  4. git到GitHub的操作和遇到的一些问题

    一.新建完项目后执行git git status //查看状态,任何时候都可以用 1. git init //初始化文件夹,并创建.git本地仓库(.git默认隐藏) 2. git add . //把 ...

  5. API访问控制设计

    References ● OAuth 2.0 for native apps: https://datatracker.ietf.org/doc/rfc8252/ ● OAuth 2.0 for br ...

  6. WebAPI接口测试数据库操作

    通常我们是不建议直接查看数据库内容来检查功能的,但是在没有外部接口或者图形界面验证的情况下,只能通过查询数据库来验证. 比如我们手工需要从界面上添加一万条数据,估计要花好几天时间,显然不能手工去操作. ...

  7. C++之运算符优先级顺序表

    [注] sizeof 的操作数不能是 C 风格转型:表达式 sizeof (int) * p 无歧义地解释成 (sizeof(int)) * p ,而非 sizeof((int)*p). 条件运算符中 ...

  8. vue学习笔记(十)路由

    前言 在上一篇博客vue学习笔记(九)vue-cli中的组件通信内容中,我们学习组件通信的相关内容和进行了一些组件通信的小练习,相信大家已经掌握了vue-cli中的组件通信,而本篇博客将会带你更上一层 ...

  9. C++做四则运算的MFC计算器(二)栈转换和计算后缀表达式

    上篇写了MFC界面搭建,这篇就写实现计算.涉及到数据结构,对新手很不友好. 虽然是MFC程序,但是能灵活地分离后台代码,自行构建控制台程序. 上篇文章链接:C++做四则运算的MFC计算器(一)MFC界 ...

  10. 东芝开发板驱动OLED模块显示LOGO图片

    前言 在之前的两篇评测文章: 使用系统定时器SysTick实现精确延时微秒和毫秒函数 东芝MCU实现位带操作 介绍了系统SysTick实现精确延时,GPIO的输入输出使用,并实现了位带方式操作GPIO ...