使用JavaScript修改浏览器URL地址栏的实现代码

源自http://www.jb51.net/article/42240.htm

现在的浏览器里,有一个十分有趣的功能,你可以在不刷新页面的情况下修改浏览器URL;在浏览过程中.你可以将浏览历史储存起来,当你在浏览器点击后退按钮的时候,你可以冲浏览历史上获得回退的信息,这听起来并不复杂,是可以实现的,我们来编写些代码。来看看它是如何工作的。

<script type="text/javascript">

            function justUrlChange(){
                for(i=0;i<5;i++){
                      var j = i+10;
                      var stateObject = {id: j};//json格式
                      var title = "Wow Title "+i;
                      var newUrl = "/SpringMVC/teacher/inWhichRoom.do?id="+i;
                      history.pushState(stateObject,title,newUrl);
                      /* 第一个参数,是一个Json对象 , 在你储存有关当前URl的任意历史信息.
                      第二个参数,title 就相当于传递一个文档的标题 .
                      第三个参数是用来传递新的URL. 你将看到浏览器的地址栏发生变化而当前页面并没刷新。 */
                }
            }

            /* 现在运行,点击浏览器的返回按钮,查看URL是怎么改变的。
            对于每次URL的改变,是因为它存储了历史状态“id”以及对应的值。
            但是我们怎么重新获得历史状态,并且在此基础上做些事情呢?
            我们需要对“popstate”添加事件监听器,这将会在每次历史对象的状态改变的时候触发。 */
            window.addEventListener(‘popstate‘, function(event) {//给浏览器添加 "返回" 监听事件
                 readState(event.state);//弹出的都是j的信息
            });

            /* 现在你会看到无论什么时候你点击返回按钮,
            一个popstate事件就会被触发。
            我们的事件侦听器然后检索历史状态对象与之关联的URL,并提示id的值 */
            function readState(data){
              alert(data.id);
            }
 </script>
时间: 2024-10-12 14:46:23

使用JavaScript修改浏览器URL地址栏的实现代码的相关文章

HTML5 修改浏览器url而不刷新页面

嘛,起因是黑子大叔在微博上的一条@信息,找起了这个的实现,看了一圈google的中文信息内似乎还没有怎么提到这个的内容,就发表上来. 详细效果就是类似于用Firefox4+/Chrome 5+/Safari 5+/Opera 11.5+登录新浪微博后看到的个人时间轴,在翻页时可以观察到这个效果,地址栏URL变动,但是页面没有刷新,用firebug观察也观察不到刷新整个页面,只有ajax请求的翻页数据.从先前的理解来说,URL的修改必然引起(请注意我不是在说通过锚点修改)浏览器重载页面,但利用HT

Javascript 获取浏览器URL参数

(function( window ){ var pageUtils = { //TODO 获取浏览器URL当前请求出参数 //Key 当前需要取参数的Key,不传返回所有参数对象 getRequest : function( key ){ var paramUrl = decodeURIComponent(location.search.substr(1) ); if(!paramUrl)return null; var paramObj = {}; //通过正则表达式替换为标准JSON字符串

javascript检测浏览器的缩放状态实现代码 是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放)

这里所说的缩放不是指浏览器大小的缩放,而是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放).检测这种缩放有很种方法,QQ空间都通过flash来检测浏览器是否处于缩放.这里提供javascript的方法来检测浏览器的缩放.对于 IE6,就直接无视了,因为 IE6 只能对文本进行缩放.先来说说浏览器提供的标准检测接口,window.devicePixelRatio 是设备上物理像素和设备独立像素的比例,该属性就可以用于检测网页是否被缩放了.在普通的 PC 浏览器上,在默认无缩放的情

如何在url地址栏中直接写数组参数进行传递

今天博主遇到这样一个问题,就是如何在浏览器url地址栏中直接写入数组参数进行传递,问了身边几个同事,都没有找到成功的书写方法.就开始怀疑是否可以在地址栏中直接写入数组进行传递.开始在谷歌,百度进行搜索查询,也是同样没有找到有用的信息. 也许,大家很少遇到这样的情况. 就这样,我自己开始慢慢的尝试书写,将自己熟悉的几种方式全部都试了一遍,依然传递不对.最后在无意情况下,不小心将参数多复制了一个,点击回车,竟然传递成功了,还是数组结果.瞬间成就满满,虽然只是一个简单小应用. 特此,写一贴给广大博友分

在浏览器的地址栏中输入url后发生了什么

这是一个非常有意思的事情,通过这个我们可以更好地理解http请求. 在浏览器的地址栏中输入url后会经历下面的步骤: 第一步:进行域名解析--- 浏览器搜索自身的DNS缓存,如果有缓存,再看有没有过期,如果没过期,就是用这个ip,如果过期,这个过程就结束了. 注:查看谷歌浏览器的dns缓存的方法--在地址栏中输入chrome://net-internals/#dns 这样就可以看到自己的浏览器中的dns缓存. 第二步:如果浏览器没有搜索到自身的dns缓存或者是自身的dns缓存已经失效,那么它就会

JavaScript基础——浏览器对象模型(BOM)

简介 ECMAScript是JavaScript的核心,但如果要在Web中使用JavaScript,那么BOM(浏览器对象模型)则无疑才是真正的核心.BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关.多年来,缺少事实上的规范导致BOM及有意思又有问题,因为浏览器提供商会按照各自的想法随意去扩展它.于是,浏览器之间公有的对象就成为了事实上的标准.这些对象在浏览器中得以存在,很大程度上是由于它们提供了与浏览器的互操作性.W3C为了把浏览器中JavaScript最基本的部分标准化

[TimLinux] JavaScript BOM浏览器对象模型

1. 简介 ECMAScript是JavaScript的核心,但是如果要在WEB中使用JavaScript,那么BOM则无疑才是真的的核心.BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关.BOM没有标准,各浏览器厂商间定义的公共对象,可以作为事实上的标准存在.W3C在HTML5中把BOM纳入了规范中. 2. window对象 window对象:表示浏览器的一个实例.window的双重角色:通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Gl

JavaScript判断浏览器类型及版本

说明:以下内容参考了一些网上资料以及同事间的一些讨论. 浏览器对于我们来说,可能是最熟悉的工具了.记得最早那会Netscape,到后来的Internet Explorer一统江湖,再到现在的FireFox大行其道,浏览器市场的争夺,可谓是硝烟弥漫.除了我们常见的IE, Firefox, Opera, Safari四大金刚以外,新近又出了一位Chrome,虽然新出,但是出于Google这个名门,Chrome所受到的关注绝不亚于先前的四大金刚,看来以后要改为5朵金花了,呵呵.除了这些熟知的浏览器以外

修改浏览器的User-Agent来伪装你的浏览器和操作系统

近期很多文章都提到了User-Agent (UA) 字符串,但大部分网友都不知道这个东西有什么用处.其实简单的说User-Agent就是客户端浏览器等应用程序使用的一种特殊的网络协议,在每次浏览器(邮件客户端/搜索引擎蜘蛛)进行 HTTP 请求时发送到服务器,服务器就知道了用户是使用什么浏览器(邮件客户端/搜索引擎蜘蛛)来访问的.既然是人为规定的协议,那么就是说不管什么浏览器,默认的UA都是可以更改的.有时候为了达到一些不可告人的目的,我就经常需要更改一下UA的设置,比如伪装一下浏览器类型,比如