hashchange事件】的更多相关文章

写过路由的同学都知道其原理是通过URL的改变,由导航信息来决定页面信息...表述的好像有点不准确 这么说吧,只要URL参数列表只要变化就会调用hashchange事件,此时event对象包括oldURL和newURL两个属性,分别保存参数列表变化前后的完整URL. 目前支持hashchange事件的浏览器有IE8+.Firfox3.6.Safari5+.Chrome和Opera10.6+,其中只有Firfox6+.Chrome和Opera支持oldURL和newURL属性, 因此,最好使用loc…
$(window) .bind( 'hashchange', onHashchange ) .trigger( 'hashchange' ); jQuery版本是1.9.1的,去源码里没找到hashchange的相关内容,所以靠事件模拟里进行hashchange. jq源码里找不到hashchange的相关内容,难道就说明jQuery不支持hashchange事件?也不一定,说不定jq通过别的方法将原生事件前面的on去掉了呢.谁知道呢,只有通过研究jq源码了.…
1.hash即URL中"#"字符后面的部分. ①使用浏览器访问网页时,如果网页URL中带有hash,页面就会定位到id(或name)与hash值一样的元素的位置: ②hash还有另一个特点,它的改变不会导致页面重新加载: ③hash值浏览器是不会随请求发送到服务器端的: ④通过window.location.hash属性获取和设置hash值. window.location.hash值的变化会直接反应到浏览器地址栏(#后面的部分会发生变化),同时,浏览器地址栏hash值的变化也会触发w…
1.hash即URL中"#"字符后面的部分. ①使用浏览器访问网页时,如果网页URL中带有hash,页面就会定位到id(或name)与hash值一样的元素的位置: ②hash还有另一个特点,它的改变不会导致页面重新加载: ③hash值浏览器是不会随请求发送到服务器端的: ④通过window.location.hash属性获取和设置hash值. window.location.hash值的变化会直接反应到浏览器地址栏(#后面的部分会发生变化),同时,浏览器地址栏hash值的变化也会触发w…
h5新增了hashchange事件,以便在URL参数列表(及URL中‘#’号后面的所有字符串),发生变化时通知开发人员. 之所以要添加这个事件,是因为在Ajax应用中,开发人员经常要利用URL参数列表来保存状态或导航信息. 必须把hashchange事件处理程序添加给window对象,然后URL列表只要发生变化就会调用他,此时的event对象应该额外包含两个属性:oldURL和newURL. 这两个属性分别保存着参数列表变化前后的完整的URL. <!DOCTYPE html> <html…
说起jQuery的事件,不得不提一下Dean Edwards大神 addEvent库,很多流行的类库的基本思想从他那儿借来的 jQuery的事件处理机制吸取了JavaScript专家Dean Edwards编写的事件处理函数的精华,使得jQuery处理事件绑定的时候相当的可靠. 在预留退路(graceful degradation),循序渐进以及非入侵式编程思想方面,jQuery也做的非常不错 事件的流程图 总的来说对于JQuery的事件绑定 在绑定的时候做了包装处理 在执行的时候有过滤器处理…
一.为什么会有这一篇的文章 国庆前几天由于任务比较重,要赶在国庆前把一个进度的任务开发完成,所以也就有点赶,但是却遇到了一个比较奇怪的Bug,导致了任务比预计的延迟了几个小时,对此深表遗憾,所以利用国庆的这段时间来补一补这个不足,也为了国庆后能够更好的完成公司的业务打下基础 二.大致了解什么是JavaScript事件流 首先这里先来举一个例子 <!DOCTYPE html> <html lang="en"> <head> <meta chars…
事件机制 jQuery对事件的绑定分别有几个API .bind()/.live()/.delegate()/.on() 不管是用什么方式绑定,归根到底还是用addEventListener/attachEvent处理的,正如选择器一样不管如何匹配最终还是那么几个浏览器接口处理,既然如此,事件为什么还要区分那么多不同的处理方案? 这里就要涉及到 DOM 事件处理模型了,就是常提到的捕获与冒泡,传统的事件处理给某一元素绑定了一个点击事件,传入一个回调句柄处理. element.addEventLis…
一.表单事件: input事件当<input>.<textarea>的值发生变化时触发.此外,打开contenteditable属性的元素,只要值发生变化,也会触发input事件.input事件的一个特点,就是会连续触发,比如用户每次按下一次按键,就会触发一次input事件. select事件当在<input>.<textarea>中选中文本时触发. Change事件当<input>.<select>.<textarea>…
   事件流 事件流描述的是从页面中接收事件的顺序,IE和Netscape提出来差不多完全相反的事件流的概念,IE事件流是事件冒泡流,Netscape事件流是事件捕获流. 事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素(文档中嵌套最深的那个节点)接收,然后逐级向上(一直到文档):如下代码: <div id = "div"> <span id="span"> <a id="aTag">事件测试&l…
本文总结自<JavaScript高级程序设计>以及自己平时的经验,针对较新浏览器以及 DOM3 级事件标准(2016年8月),对少部分内容作了更正,增加了各种例子及解析. 如无特殊说明,本文后的文字引用和图片引用均来自<JavaScript高级程序设计>,引用稍有改变原文,不改变意思. 本文仅作巩固基础之用,如果有不正确的地方,还望指出. 更好的排版可以点这里 事件 个人认为:不论是浏览器自带的事件,还是自定义事件,都是观察者模式的实现.更确切地说:事件流是会流动的,流到哪个节点,…
使用实例: 使用onhashchange事件做一个简单的上一页下一页功能,并且当刷新页面时停留在当前页 html: <!DOCTYPE html><html><body><div id="demo"></div><button class="previous-page">上一题</button><button class="next-page">下一题…
在ajax请求中,不能更新地址栏,地址栏上的“前进”和“后退”按钮就失效了,带来了另外一种糟糕的用户体验. 解决方案如下: 方案一:使用window. Onhashchange 事件 如下面Html片段,点击不同的连接,在mainPanel中加载不同的页面: page1 page2 page3 首先写一个方法来获取当前url中指定key的hash值,如下: 使用onhashchange事件触发ajax请求: 到这里工作已经完成了80%,为什么是80%呢,这里面还有一个问题: 当你直接在浏览器(新…
JavaScript 事件总结   本文总结自<JavaScript高级程序设计>以及自己平时的经验,针对较新浏览器以及 DOM3 级事件标准(2016年8月),对少部分内容作了更正,增加了各种例子及解析. 如无特殊说明,本文后的文字引用和图片引用均来自<JavaScript高级程序设计>,引用稍有改变原文,不改变意思. 本文仅作巩固基础之用,如果有不正确的地方,还望指出. 事件 个人认为:不论是浏览器自带的事件,还是自定义事件,都是观察者模式的实现.更确切地说:事件流是会流动的,…
<!DOCTYPE html> <html> <head> <title>Hash Change Example</title> <script type="text/javascript" src="EventUtil.js"></script> </head> <body> <p>Click each of these links to cha…
本文总结自<JavaScript高级程序设计>以及自己平时的经验,针对较新浏览器以及 DOM3 级事件标准(2016年8月),对少部分内容作了更正,增加了各种例子及解析. 如无特殊说明,本文后的文字引用和图片引用均来自<JavaScript高级程序设计>,引用稍有改变原文,不改变意思. 本文仅作巩固基础之用,如果有不正确的地方,还望指出. 事件 个人认为:不论是浏览器自带的事件,还是自定义事件,都是观察者模式的实现.更确切地说:事件流是会流动的,流到哪个节点,事件在哪里发生,事件发…
添加移除函数(removeEventListener)时三个参数保持一致,否则会失败,而且不会有错误提示 var btn = document.getElementById(“myBtn”); btn.addEventListener(“click”, function(){     alert(this.id); }, false); 这样是移除不了的,因为第二个匿名函数并不是同一个,也就是说匿名函数作为handle是无法取消的! btn.removeEventListener(“click”…
hash定义 hash这个玩意是地址栏上#及后面部分,代表网页中的一个位置,#后面部分为位置标识符.页面打开后,会自动滚动到指定位置处. 位置标识符 ,一是使用锚点,比如<a name="demo"></a>,二是使用id属性,比如 <span id="demo" ></span> 带hash的请求 当打开http://www.example.com/#print服务器实际收到的请求地址是http://www.exam…
想在五一放假的时候写出来,由于放假有点兴奋,心早就跑了,不废话了. 说一下基于hashchange导航管理: 浏览器的历史记录导航是用户非常常用的功能,除了点击前进后退按钮外,Window上的history对象还可以实现浏览器的导航. 例如:window.history.back();//后退 window.forward();//前进 window.history.go(-1);//后退一步 window.history.go(1)//前进一步 这些方法都会有一个共同的特点是都会导致浏览器重新…
4.事件类型 “DOM3级事件”规定了一下几类事件: 1)UI事件(用户界面事件),当用户与页面元素交互时触发 2)焦点事件,当元素获得或失去焦点时触发 3)鼠标事件,当用户通过鼠标在页面上执行操作时触发 4)滚动事件,当使用鼠标滚轮(或类似设备)时触发 5)文本事件,当在文档中输入文本时触发 6)键盘事件,当用户通过键盘在页面执行操作时触发 7)合成事件,当IME(Input Method Editor,输入法编辑器)输入字符时触发 8)变动事件(mutation),当底层DOM结构发生变化时…
DOM规范没有涵盖所有浏览器支持的所有事件 而许多浏览器出于满足用户需求,或解决特殊问题的目的,实现了一些自定义事件 HTML5列出了浏览器应该支持的所有事件,这里只讨论得到浏览器完善支持的事件(并非全部) contextmenu事件 windows95 在PC中引入了上下文菜单的概念,即通过鼠标右键可以调出上下文菜单 在该概念提出后不久,该概念也被引入了web 领域 在web中实现该概念,开发人员面临的主要问题是:1.如何确定上下文菜单以何种方式打开(windows中鼠标右键,Mac中 ctr…
Html5事件 contextmenu事件 用以表示何时应该显示上下文菜单,以便开发人员取消默认的上下文菜单而提供自定义的菜单. 由于此事件时冒泡的,因此可以为document指定一个事件处理程序,用以处理页面中发生的所有此类事件.这个事件的目标是发生用户操作的元素,在浏览器中都可以取消这个事件在兼容DOM的浏览器中,使用event.preventDefaluet().在ie中,将event.returnValue的值设置为false,因为contextmenu事件属于鼠标事件,所以其事件对象中…
概述 这是我在单页Web应用这本书上看到的方法,并深入的研究了一下,把结果记录在下面,供以后开发时参考,相信对其它人也有用. 说明一下,这个方法已经过时了,H5有更新的方法:history api,我们在锚接口(下)会讲到. 引子 自从接触单页面spa之后,我就对它的路由非常好奇:既然不是传统的利用文件夹存放路径的形式来路由的话,那到底单页面spa是怎么路由的呢? 更关键的是,复制url并在另一个页面打开,内容为什么不会变呢? 说明 url的hash值改变的时候,页面并不会刷新,这是唯一改变ur…
事件流 事件流描述的是从页面中接收事件的顺序,IE和Netscape提出来差不多完全相反的事件流的概念,IE事件流是事件冒泡流,Netscape事件流是事件捕获流. 事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素(文档中嵌套最深的那个节点)接收,然后逐级向上(一直到文档):如下代码: <div id = "div"> <span id="span"> <a id="aTag">事件测试</…
事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行. 事件是文档或者浏览器窗口中发生的,特定的交互瞬间. 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字. 事件是javaScript和DOM之间交互的桥梁. 你若触发,我便执行——事件发生,调用它的处理函数执行相应的JavaScript代码给出响应. 典型的例子有:页面加载完毕触发load事件:用户单击元素,触发click事件. 事件流描述的是从页面中接收事件的顺序. 事件发生时会在元素…
程序猿都非常懒.你懂的! 生命的绝唱来机仅仅争朝夕,如诗的年华更需惜时如金. 不要让今天的懈怠成为一生的痛. 每天都在进步. 近期在学习jquery mobile开发.使用的button,绑定事件,和大家一起学习.一起分享! 直接上代码: <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jque…
通过URL传值,在?后附加以=连接的键值对,各键值对间以&连接:也可以通过URL传递页面参数,在”#”后附加的方式.两者最大的一个 区别在于:后者不会发起请求,不会导致页面刷新.常见应用场景在于:不需要请求服务器,由浏览器端脚本直接定位到某个条件下的页面展示.例如:在这个页面 中http://www.istartedsomething.com/bingimages/#20101106-us,带hash值打开的是展示某个 大图的页面,不带hash值打开(http://www.istartedsom…
事件是用户或者浏览器自身执行的动作,而响应某个事件的函数就叫做事件处理程序或者叫事件侦听器. 定义事件处理程序可以大致分为以下三种: 一.html事件处理程序 元素支持的每种事件都可以用一个与之对应的事件处理程序的同名html特性来指定. <input type="button" id="demo" onclick="alert(this.id)"> 这种方式创建的事件处理程序,里面有包含一个局部变量event,就是事件对象,在这个函…
事件流 事件流描述的是从页面中接收事件的顺序,IE和Netscape提出来差不多完全相反的事件流的概念,IE事件流是事件冒泡流,Netscape事件流是事件捕获流. 事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素(文档中嵌套最深的那个节点)接收,然后逐级向上(一直到文档):如下代码: <div id = "div"> <span id="span"> <a id="aTag">事件测试</…
事件冒泡: IE 的事件流,事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档).例如: <!DOCTYPE html> <html> <head> <title>Event Bubbling Example</title> </head> <body> <div id="myDiv">Click Me</div> </b…