CreateTime--2017年1月15日12:57:57
Author:Marydonjavascript事件及应用说明: 1.添加javascript事件的两种方式 //方式一 a.在标签上进行声明; 注: js对应的事件的"javascript"声明可有可无,但是为了规范需要加上声明,即"javascript:"; js事件所对应的值可以直接添加js代码(见下面的onclick事件) //方式二 b.使用js为该标签绑定事件; 2.事件中的return true/false 与 event.returnValue=true/false a.return false 与 event.returnValue=false 表示的含义相同; b."return true;"与"event.returnValue=true;"表示的含义相同。具体事件1.onload 事件 说明:页面加载完毕后要执行的操作//方式1:在js文件中使用window.onload = function () { }//方式2:在body标签上使用
注意:
a.当onload在标签上声明时,仅仅声明在body标签上时有效,如:在div上声明一个onload事件,虽然不报错,但是该onload事件无效; b.window.onload事件在js中有效执行的有且只有一个(声明多次没有意义),否则后面的会将前面的覆盖 案例: window.onload同时执行多个函数的解决方法(解决不能使用多个window.onload的方法) CreateTime--2016年9月23日10:27:53 方法一:同时调用多个函数(body方式) 程序代码方法二:在JavaScript语句中同时调用多个函数(适用于函数少的情况)
程序代码这种调用方式可以用于不太复杂的JavaScript程序中,如果程序函数很多,逻辑比较复杂,可以考虑用另外一种方式
方法三:自定义函数式多次调用(函数多时,推荐使用)function addLoadEvent(func) { var oldonload = window.onload; //得到上一个onload事件的函数 if(typeof oldonload != "function") { //判断类型是否为function,注意TYPROF返回的是字符串 window.onload = func; } else { window.onload = function() { oldonload(); //调用前覆盖的onload事件的函数 func(); //调用当前的函数 } }}
使用方法:
function testOnload() { alert(2);};function testOnload2() { alert(3);}
调用:
addLoadEvent(testOnload); addLoadEvent(testOnload2); 说明:详细解释见:js-自定义方法或demo-多次调用window.onload.html文件UpdateTime--2017年1月7日16:27:002.onclick 事件 说明:点击时触发的事件 举例:UpdateTime--2017年1月12日16:24:38
3.onresize 事件 说明:该事件会在窗口或框架大小改变时触发window.onresize = function() { alert("resize")}
4.onscroll 事件
说明:页面有滚动条,滚动条滚动时触发,监听的是页面的滚动事件 案例:滚动条滚动到底部时,再次继续加载数据window.onscroll = function() { //滚动条高度 网页被卷去的高度 var stop = document.body.scrollTop || document.documentElement.scrollTop; //浏览器高度(当前窗口)head标签的内容不会作为正文显示在页面上 var wh = window.innerHeight || document.documentElement.clientHeight; //文本高度(可见元素之和的高度) var bodyHeight = document.body.clientHeight; //alert("stop"+stop+"====wh"+wh) //实现的就是滚动条滚动到底部,再次继续加载数据 if (stop + wh >= bodyHeight) { alert("h1="+(stop+wh)+"h2="+bodyHeight) //alert("加载数据"); }}
5.oncopy 事件
说明:当进行复制时触发 案例:禁用复制功能 a.设置某个具体标签禁止复制//方法1:
在标签上添加oncopy事件: οncοpy="javascript:return false;" 即:或
//方法2:
绑定oncopy事件window.onload = function() { document.getElementById("test").oncopy = function(){ return false;} //或document.getElementById("test").oncopy = function(){event.returnValue=false;} //或document.getElementById("test").oncopy = new Function("event.returnValue=false");}
b.禁止复制网页内容
参考链接: //方法1: 在网页中加入以下代码://方法2:
在body标签上添加oncopy事件: οncοpy="javascript:return false;" 即:或
6.onpaste 事件
说明:进行粘贴时触发 案例:禁用粘贴 在标签上添加onpaste事件: οnpaste="javascript:return false;" 即:7.onselectstart 事件
说明:选取网页内容时触发 案例:禁用选取功能 <div id="test"></div> //方法1: 在标签上添加onselectstart事件: onselectstart="javascript:return false;" 即://方法2:
绑定onselectstart事件window.onload = function() { document.getElementById("test").onselectstart = function(){ return false;}}
8.oncontextmenu 事件
说明:鼠标右键时触发 案例:禁用右键菜单 在标签上添加oncontextmenu事件: οncοntextmenu="javascript:return false;" 即:UpdateTime--2017年1月19日23:08:06
9.onfocus 事件 说明:光标聚焦时触发10.onblur 事件 说明:光标失去焦点时触发11.onsubmit 事件 说明:控制form表单的提交 return false/true;12.onmouseover 事件 说明:鼠标悬浮时触发UpdateTime--2017年1月21日18:56:0213.ondblclick 事件 说明:鼠标双击时触发的事件 举例:UpdateTime--2017年7月9日11:43:21
14.onbeforeunload 事件
说明:在即将离开当前页面(刷新或关闭)时触发
用法一:在即将离开当前页面(刷新或关闭)时,弹出是否离开确认框
实现方式一
/** * 在即将离开当前页面(刷新或关闭)时,弹出是否离开确认框 */window.onbeforeunload = function () { return "";}
实现方式二
/** * 添加监听事件 */window.addEventListener("beforeunload", function(event) { event.returnValue = ""; });
注意:Internet Explorer 8 及更早 IE 版本不支持 addEventListener() 方法。
当点击关闭该网页时,提示信息,效果展示:
小结:
a.想要窗口关闭前,提示是否离开确认框的必要条件:必须有return ""这行代码;
b.想要在弹出是否离开框里添加想要提示的信息,return "自定义提示信息"。
用法二: 在当前窗口关闭或刷新前,需要执行一些操作
/** * 在当前窗口关闭或刷新前,需要执行一些操作 */window.onbeforeunload = function () { alert("输入你要执行的代码块");}
注意:
a.这种方式在IE浏览器可以,chrome浏览器不支持;
b.完全判定浏览器是在关闭的,没有什么完美的方法。如果你要将事务写到这里面去,就更是建议你不要这么做了。意外的情况太多