Handle URL anchor change event in js 监控地址栏里面的#后面

Google Custom Search Engines use a timer to check the hash against a previous value, whilst the child iframe on a seperate domain updates the parent‘s location hash to contain the size of the iframe document‘s body.  When the timer catches the change, the parent can resize the iframe to match that of the body so that scrollbars aren‘t displayed.

Something like the following achieves the same:

var storedHash = window.location.hash;window.setInterval(function () {
    if (window.location.hash != storedHash) {
        storedHash = window.location.hash;
        hashChanged(storedHash);
    }}, 100); // Google uses 100ms intervals I think, might be lower

Google Chrome 5, Safari 5, Opera 10.60, Firefox 3.6 and Internet Explorer 8 all support the hashchange event:

if ("onhashchange" in window) // does the browser support the hashchange event?
    window.onhashchange = function () {
        hashChanged(window.location.hash);
    }

and putting it together:

if ("onhashchange" in window) { // event supported?
    window.onhashchange = function () {
        hashChanged(window.location.hash);
    }}else { // event not supported:
    var storedHash = window.location.hash;
    window.setInterval(function () {
        if (window.location.hash != storedHash) {
            storedHash = window.location.hash;
            hashChanged(storedHash);
        }
    }, 100);}

jQuery also has a plugin that will check for the hashchange event and provide its own if necessary - http://benalman.com/projects/jquery-hashchange-plugin/.

Handle URL anchor change event in js 监控地址栏里面的#后面

时间: 2024-10-07 19:05:59

Handle URL anchor change event in js 监控地址栏里面的#后面的相关文章

JPA project Change Event Handler问题解决[转]

转至:http://my.oschina.net/cimu/blog/278724 这是Eclipse中的一个GUG: Bug 386171 - JPA Java Change Event Handler (Waiting) 解决方法: 1.) 退出Myeclipse(或eclipse): 2.) 进入Myeclipse(或eclipse)的安装目录: linux中: mkdir disabled mkdir disabled/features disabled/plugins mv plugi

【转】JPA project Change Event Handler / 导致eclipse十分卡

这是Eclipse中的一个GUG: Bug 386171 - JPA Java Change Event Handler (Waiting) 解决方法: 1.) 退出Myeclipse(或eclipse): 2.) 进入Myeclipse(或eclipse)的安装目录: linux中: mkdir disabled mkdir disabled/features disabled/plugins mv plugins/org.eclipse.jpt.* disabled/plugins mv f

there is issue about change event of checkbox in the ie8 oe ie7

some people said the change event of checkbox can not trigger in the ie7 or ie8,that's not true. this event can trigger in the ie7 or ie8 ,but you can not get the correct checked property value right now,you only can get right value when this event i

JPA project Change Event Handler问题解决

eclipse使用的是有经常会出现JPA project Change Event Handler(watering)很卡 网上的解决办法是 [Help > Installation Details > Installed Software] 下面找到Dali Java Persistence Tools -JPA Support   然后删掉重启 但是有个时候还是会出现JPA project Change Event Handler的问题 那么关掉eclipse然后在安装目录下plugins

[转]用JS获取地址栏参数的方法(超级简单)

本文转自:http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) ? function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");      var r = window.loca

JS取地址栏参数的两种方法

第一种方法: function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null;} 第二种方法: function getParamValue(

使用 StatsD + Grafana + InfluxDB 搭建 Node.js 监控系统

在石墨,我们之前使用 ELK 搭了一套监控图表,由于一些原因,比如: 1.Kibana 经常查日志查挂2.Kibana 的图表不太美观.不够灵活所以调研了一下,选择用 StatsD + Grafana + InfluxDB 搭建一套新的监控系统. 工具简介 StatsD 是一个使用 Node.js 开发的简单的网络守护进程,通过 UDP 或者 TCP 方式侦听各种统计信息,包括计数器和定时器,并发送聚合信息到后端服务,例如 Graphite.ElasticSearch.InfluxDB 等等,这

火狐浏览器不能获取 event,解决js报错问题

//←的keyCode等于:37 //→的keyCode等于:39 //↑的keyCode等于:38 //↓的keyCode等于:40 function keystoke(obj){ //var e = window.event;//这样在火狐浏览器不兼容,js失效 var e = window.event || arguments.callee.caller.arguments[0]; var tid=obj.id; var str=parseInt(tid); switch(e.keyCod

通过抓包获取跳转url并通过dnspython模块查询监控服务是否正常

最近看到网上有一个例子,是用于通过DNS轮询来查看同个DNS下,多个ip对应服务页面监控的脚本,自己在试验过程中,发现访问有些网站会出现conn.getresponse()为空的情况,通过conn.getresponse().status.conn.getresponse().reason得出是303 SEE OTHER,这种情况不能做出服务是否正常的判断,所以通过wireshark抓包来查看返回200 OK上面一个包,然后通过分析包,加到headers进行访问.具体过程如下: 1.打开wire