监控 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