监控 url fragment变化的js代码

时间:2023-08-25 10:20:58 

当然,页面最好不要刷新,但是,拷贝一下浏览器的链接,又希望是下次能定位到你播发的那个视频。方法很简单,改变一下 url 的 fragment 就可以了。

监听fragment 的变化是这类编程的核心。在主流的浏览器(IE firefox)里面 都有一个 onhashchange 的事件监听 fragment 的变化。
但是,他们的行为有些差异。在IE8 以前的 IE版本里面,当 window.location 对象迅速变化的情况下,onhashchange 不会触发,非常奇怪的bug。

下面我写的 onhashchange 事件 没有浏览器的差异。并且加入了一个功能,页面初始化的时候,如果 url 中 有 fragment ,也触发一下
onhashchange 事件。


function addFragmentChangeEvent(callback)
{
var source = document.URL;
var url = source.split("#")[0];
if (window.location.hash)
{
var base_hash = "#____base____hash____";//改变hash,使得页面初始化的时候触发一下事件函数。
window.location = url + base_hash;
}
var prevHash = window.location.hash;
window.setInterval(
function()
{
if (window.location.hash != prevHash)
{
prevHash = window.location.hash;
callback(prevHash);
}
}, 100);
if (window.location.hash)
{
window.location = source;
}
}


其实这个技巧是js 中间常用的技巧,模拟一个事件的作用。

标签:url,fragment变化
0
投稿

猜你喜欢

  • 交互设计实用指南系列(6) –标签明晰、有效

    2010-01-21 12:39:00
  • Linux环境MySQL服务器级优化讲解

    2008-12-04 17:21:00
  • 方便和实用

    2009-02-02 10:16:00
  • sqlserver 巧妙的自关联运用

    2012-07-21 14:55:12
  • 一个导航的前端实现

    2008-11-13 12:41:00
  • 站长如何活用"nofollow"标签

    2008-05-13 12:40:00
  • 空行不空格式排版组织原理

    2010-05-03 14:46:00
  • QQ连连看 for iPhone 设计实录分享

    2010-09-25 12:54:00
  • python入门:argparse浅析 nargs='+'作用

    2023-06-26 15:52:58
  • 详解Go语言微服务开发框架之Go chassis

    2023-06-19 03:39:36
  • ASP Application 对象用户手册

    2008-10-23 13:59:00
  • 菜鸟大讲堂:如何查看mysql版本的四种方法

    2009-09-05 09:54:00
  • 避免重复写代码的小函数

    2008-09-21 13:41:00
  • MySQL数据库临时文件究竟储存在哪里

    2009-09-06 12:11:00
  • 图片预加载效果的实现

    2008-06-16 12:08:00
  • 删除PHP数组中头部、尾部、任意元素的实现代码

    2023-06-14 12:40:44
  • Sqlserver 2000/2005/2008 的收缩日志方法和清理日志方法

    2012-07-21 14:55:18
  • 利用aspjpeg组件自动生成产品缩略图asp源代码

    2007-08-10 10:14:00
  • FrontPage2002简明教程一:安装与界面

    2008-08-17 11:04:00
  • SQL Server 复制需要有实际的服务器名称才能连接到服务器

    2012-07-11 15:46:51
  • asp之家 网络编程 m.aspxhome.com