使用 JavaScript 修改浏览器 URL 地址栏

现在的浏览器里,有一个十分有趣的功能,你可以在不刷新页面的情况下修改浏览器URL;在浏览过程中.你可以将浏览历史储存起来,当你在浏览器点击后退按钮的时候,你可以冲浏览历史上获得回退的信息,这听起来并不复杂,是可以实现的,我们来编写些代码。来看看它是如何工作的。
1 var stateObject = {};
2 var title = "Wow Title";
3 var newUrl = "/my/awesome/url";
4 history.pushState(stateObject,title,newUrl);

History 对象 pushState() 这个方法有3个参数,你可以从上面的例子看到。第一个参数,是一个Json对象 , 在你储存有关当前URl的任意历史信息.第二个参数,title 就相当于传递一个文档的标题 ,第三个参数是用来传递新的URL. 你将看到浏览器的地址栏发生变化而当前页面并没刷新。

你要爪子
你要爪子
翻译于 4天前

2人顶

 翻译的不错哦!

其它翻译版本(1)

让我们看一个例子,在这个例子中我们将在每个独立的URL中存储一些任意数据。

1 for(i=0;i<5;i++){
2   var stateObject = {id: i};
3   var title = "Wow Title "+i;
4   var newUrl = "/my/awesome/url/"+i;
5   history.pushState(stateObject,title,newUrl);
6 }

现在运行,点击浏览器的返回按钮,查看URL是怎么改变的。对于每次URL的改变,是因为它存储了历史状态“id”以及对应的值。但是我们怎么重新获得历史状态,并且在此基础上做些事情呢?我们需要对“popstate”添加事件监听器,这将会在每次历史对象的状态改变的时候触发。

01 for(i=0;i<5;i++){
02   var stateObject = {id: i};
03   var title = "Wow Title "+i;
04   var newUrl = "/my/awesome/url/"+i;
05   history.pushState(stateObject,title,newUrl);
06   alert(i);
07 }
08   
09 window.addEventListener('popstate'function(event) {
10   readState(event.state);
11 });
12   
13 function readState(data){
14   alert(data.id);
15 }

现在你会看到无论什么时候你点击返回按钮,一个“popstate”事件就会被触发。我们的事件侦听器然后检索历史状态对象与之关联的URL,并提示“id”的值。

它是非常的简单和有趣,不是吗?

来源:http://www.oschina.net/translate/manipulating-url-using-javascript-without-freshing-the-page?from=20131020

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值