page对象的init事件,emacs load init.el事件,unemacs load init.el事件何时发生

共30个文档积分:3000分
共30个文档积分:3000分
共57个文档积分:1300分
共50个文档积分:2500分
43755人查阅
42995人查阅
43180人查阅
所需积分:0分【图文】第6章 ASP. NET内置对象和状态管理_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第6章 ASP. NET内置对象和状态管理
&&asp.net程序设计教程ppt
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)当前位置:&&
本页文章导读:
&&&&?javascript事件 pageshow和pagehide事件的实例详解&&&&&&Firefox和Opera有一个新特性,名叫“往返缓存”(back-forward cache,或bfcache),可以在用户使用浏览器的“后退”和“前进”按钮时加快页面的转换速度。
这个缓存中不仅保存着页面数据,还保.........&&&&?javascript事件之鼠标滚轮(mousewheel)和DOMMouseScroll事件&&&&&&本节介绍javascript中的鼠标滚轮(mousewheel)和DOMMouseScroll事件的用法。
IE6.0首先实现了mousewheel事件。此后,Opera、Chrome和Safari也都实现了这个事件。当用户通过鼠标滚轮与页面交互、在垂直方向上.........&&&&?javascript事件之卸载(unload)事件&&&&&&之前我们介绍过:javascript 卸载前beforeunload事件 ,今天为大家介绍下卸载(unload)事件。
在javascript中,与load事件对应的是unload事件,这个事件在文档被完全卸载后触发。
只要用户切换到另一.........
[1]javascript事件 pageshow和pagehide事件的实例详解
&&&&来源:&互联网& 发布时间:&
var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
element["on" + type] =
(function () {
var showCount = 0;
EventUtil.addHandler(window, "load", function () {
alert("Load fired");
EventUtil.addHandler(window, "pageshow", function (event) {
showCount++;
alert("Show has been fired " + showCount + " times.");
使用了私有作用域,以防止变量showCount进入全局作用域。当页面首次加载完成时,showCount的值为0。此后,每当触发pageshow事件,showCount的值就会递增并通过警告框显示出来。如果你在离开包含以上代码的页面之后,又单击“后退”按钮返回该页面,就会看到showCount每次递增的值。
因为该变量的状态,乃至整个页面的状态,都保存在了内存中,当返回这个页面时,它们的状态得到了恢复。
如果单击了浏览器的“刷新”按钮,那么showCount的值会被重置为0,因为页面已经完全重新加载了。
除了通常的属性之外,pageshow事件的event对象还包含一个名为persisted的布尔值属性。
如果页面中保存在了bfcache中,则这个属性的值为true;否则,这个属性的值为false。
可以像下面这样在事件处理程序中检测这个属性:
var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
element["on" + type] =
(function () {
var showCount = 0;
EventUtil.addHandler(window, "load", function () {
alert("Load fired");
EventUtil.addHandler(window, "pageshow", function (event) {
showCount++;
alert("Show has been fired " + showCount + " times.Persisted? " + event.persisted);
通过检测persisted属性,就可以根据页面在bfcache中的状态来确定是否需要采取其它操作。
与pageshow事件对应的是pagehide事件,该事件会在浏览器卸载页面的时候触发,而且是在unload事件之前触发。
与pageshow事件一样,pagehide在document上面触发,但其事件处理程序必须要添加到Windows对象。
这个事件的event对象也包含persisted属性,不过其用途稍有不同。
var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
element["on" + type] =
EventUtil.addHandler(window, "pagehide", function (event) {
alert("Hiding. Persisted? " + event.persisted);
有时可能需要在pagehide事件触发时根据persisted的值采取不同的操作。
对于pageshow事件,如果页面是从bfcache中加载的,那么persisted的值就是true;
对于pagehide事件,如果页面在加载之后会保存在bfcache中,那么persisted的值也会被设置为ture。
因此,当第一次触发pageshow时,persisted的值一定是false,而在第一次触发pagehide时,persisted就会变成true(除非页面不会保存在bfcache中)。
指定了onunload事件处理程序的页面会被自动排除在bfcache之外,即使事件处理程序是空的。
具体原因:
onunload最常用于撤销在onload中所执行的操作,而跳过onload后再次显示页面很可能会导致页面不正常。
[2]javascript事件之鼠标滚轮(mousewheel)和DOMMouseScroll事件
&&&&来源:&互联网& 发布时间:&
Event.addHnadler(document, "mousewheel", function (event) {
event = EventUtil.getEvent(event);
alert(event.wheelDelta);
这个例子会在发生mousewheel事件时显示wheelDelta的值。
多数情况下,只要知道鼠标滚轮滚动的方向就够了,而这通过检测wheelDelta的正负号就可以确定。
在Opera9.5之前的版本中,wheelDelta的值的正负号是颠倒的。
如果你打算支持早期的Opera版本,就需要使用浏览器检测技术来确定实际的值。
EventUtil.addHandler(document, "mousewheel", function () {
event = EventUtil.getEvent(event);
var delta = (client.engine.opera && client.engine.opera & 9.5 ? -event.wheelDelta : event.wheelDelta);
alert(delta);
Firefox支持一个名为DOMMouseScroll的类似事件,也是在鼠标滚动时触发。与mousewheel事件一样,DOMMouseScroll也被视为鼠标事件,因而包含与鼠标事件有关的所有属性。
而有关鼠标滚轮的信息则保存在detail属性中,当向前滚动鼠标滚轮时,这个属性的值是-3的倍数,当向后滚动鼠标滚轮时,这个属性的值是3的倍数。
可以将DOMMouseScroll事件天骄到页面中的任何元素,而且该事件会冒泡的window对象。
因此,可以像下面这样针对这个事件添加事件处理程序:
EventUtil.addHandler(window, "DOMMouseScroll", function (event) {
event = EventUtil.getEvent(event);
alert(event.detail);
这个简单的事件处理程序会在鼠标滚轮滚动时显示detail属性的值。
若要给出跨浏览器的解决方案,第一步就是创建一个能够取得鼠标滚轮增量值(delta)的方法。
添加到EventUtil对象中的这个方法:
var EventUtil = {
getWheelDelta: function (event) {
if (event.wheelDelta) {
return (client.engine.opera && client.engine.opera & 9.5 ? -event.wheelDelta : event.wheelDelta);
return -event.detail * 40;
这里,getWheelDelta()方法首先检测了事件对象是否包含wheelDelta属性,如果是则通过浏览器检测代码确定正确的值。
如果wheelDelta不存在,则假设相应的值保存在detail属性中。由于Firefox的值有所不同,因此首先要将这个值的符号反向,然后再乘以40,就可以保证与其它浏览器的值相同了。
有此方法之后,就可以将相同的事件处理程序指定给mousewheel和DOMMouseScroll事件了,例如:
(function(){
function handleMouseWheel(event) {
event = EventUtil.getEvent(event);
var delta = EventUtil.getWheelDelta(event);
alert(delta);
EventUtil.addHandler(document, "mousewheel", handleMouseWheel);
EventUtil.addHandler(document, "DOMMouseScroll", handleMouseWheel);
一个跨浏览器环境下的解决方案:
var client = function () {
var engine = {
//呈现引擎
webkit: 0,
//具体版本号
engine: engine
var EventUtil = {
getEvent: function (event) {
return event ? event : window.
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
element["on" + type] =
getWheelDelta: function (event) {
if (event.wheelDelta) {
return (client.engine.opera && client.engine.opera & 9.5 ? -event.wheelDelta : event.wheelDelta);
return -event.detail * 40;
(function(){
function handleMouseWheel(event) {
event = EventUtil.getEvent(event);
var delta = EventUtil.getWheelDelta(event);
alert(delta);
EventUtil.addHandler(document, "mousewheel", handleMouseWheel);
EventUtil.addHandler(document, "DOMMouseScroll", handleMouseWheel);
在iPhone和iPodTouch中,如果两个手指同时放在屏幕上,而且页面因手指移动而滚动,也会触发mousewheel事件。
[3]javascript事件之卸载(unload)事件
&&&&来源:&互联网& 发布时间:&
var EventUtil = {
getEvent: function (event) {
return event ? event : window.
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
element["on" + type] =
EventUtil.addHandler(window, "unload", function (event) {
alert("Unloaded");
此时生成的event对象在兼容DOM的浏览器中值包含target属性(值为document)。
IE则为这个事件对象提供了srcElement属性。
指定事件处理程序的第二种方式,也是我为&body&元素添加一个特性(与load事件类似)。
&tilte&卸载(unload)事件--www.&/tile&
&body onunload="alert('Unload')"&
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)9IT.COM,E-mail:www_169it_com#163.com(请将#改为@)鍗氬?鍒嗙被锛

我要回帖

更多关于 load init 区别 的文章

 

随机推荐