今天看了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. 设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示(1.准备工作)

    本案例适用于开发者入门理解Azure Functions/ IoT Hub / Service Bus / Power BI等几款产品. 主要实战的内容为: 将设备遥测数据上传到物联网中心, 将遥测数 ...

  2. 基于Tomcat的GeoServer部署步骤

    一.安装JAVA 资源:JDK1.8 提取码:0y26 步骤: 1.安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置": 2. ...

  3. 【译】ModSecurity事务生命周期

    本篇简要介绍ModSecurity Transaction Lifecycle,也即ModSecurity的事务生命周期. Transaction Lifecycle In ModSecurity, ...

  4. Android 数据库 SQLiteOpenHelper

    public class DbOpenHelper extends SQLiteOpenHelper { private static String name = "test.db" ...

  5. Centos7 死活上不了网

    NAT模式,手动修改ifcfg 如下: # vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHOD=noneBR ...

  6. 关于 Python_你一定没读过的8个技巧

    介绍 Python 功能和小技巧的文章网上有无数篇,比如变量解压缩,partial 偏函数,枚举可迭代对象... 但关于 Python 我们能说的还有很多.所以今天我将向大家展示一些我知道和有使用过的 ...

  7. Spring基础——配置文件pom.xml,web.xml,ApplicationContext.xml

    Spring配置文件——复制粘贴即用 为了以后兼容SSM框架,直接创建Maven Project,包结构如下图. pom.xml <project xmlns="http://mave ...

  8. IS Kali: installed chiess messy code problem

    apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy init 6

  9. ORA-14061: 不能更改索引分区列的数据类型或长度

    修改分区表主键时报错: 在行: 2 上开始执行命令时出错 -alter table KC23 modify AAZ210 VARCHAR2(50)错误报告 -SQL 错误: ORA-14061: 不能 ...

  10. 快速排序 Vs. 归并排序 Vs. 堆排序——谁才是最强的排序算法

    知乎上有一个问题是这样的: 堆排序是渐进最优的比较排序算法,达到了O(nlgn)这一下界,而快排有一定的可能性会产生最坏划分,时间复杂度可能为O(n^2),那为什么快排在实际使用中通常优于堆排序? 昨 ...