javascript事件

 

CreateTime--2017年1月15日12:57:57
Author:Marydon
javascript事件及应用
说明:
  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标签上使用
<body onload="javascript:function1();function2();function3();">
</body>

  注意:
    a.当onload在标签上声明时,仅仅声明在body标签上时有效,如:在div上声明一个onload事件,虽然不报错,但是该onload事件无效;
    b.window.onload事件在js中有效执行的有且只有一个(声明多次没有意义),否则后面的会将前面的覆盖
  案例:
    window.onload同时执行多个函数的解决方法(解决不能使用多个window.onload的方法)
  CreateTime--2016年9月23日10:27:53
  方法一:同时调用多个函数(body方式)
    程序代码

<html>
   <body onload="function1();function2();function3();">
   </body>
</html>

  方法二:在JavaScript语句中同时调用多个函数(适用于函数少的情况)
    程序代码

<script type="text/javascript">
    function f1(){...}
    function f2(){...}
    function f3(){...}
    function f4(){...}
    window.onload=function(){
        f1();
        f2();
        f3();
        f4();
    }
</script>

    这种调用方式可以用于不太复杂的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:00
2.onclick 事件
  说明:点击时触发的事件
举例:

<input type="checkbox" id="STATUS_CH" onclick="javascript:if (this.checked) $get('FSTATUS').value='1';else $get('FSTATUS').value='0';"/>

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.设置某个具体标签禁止复制

<input id="test" type="text"/>

    //方法1:
    在标签上添加oncopy事件:
    οncοpy="javascript:return false;"
    即:

<input id="test" type="text" oncopy="javascript:return false;"/>

    或

<input id="test" type="text" oncopy="javascript:event.returnValue=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.禁止复制网页内容
    参考链接:http://www.jb51.net/article/18494.htm
    //方法1:
    在网页中加入以下代码:

<script language="Javascript"> 
    //方法一
    document.oncopy = function() {return false;}
    //方法二
    document.οncοpy= new Function("event.returnValue=false");
    //方法三
    document.oncopy = function() {event.returnValue=false;}
</script>

    //方法2:
    在body标签上添加oncopy事件:
    οncοpy="javascript:return false;"
    即:

<body oncopy="javascript:return false;"></body>

    或

<body oncopy="javascript:event.returnValue=false;"></body>

6.onpaste 事件
  说明:进行粘贴时触发
  案例:禁用粘贴
    在标签上添加onpaste事件:
    οnpaste="javascript:return false;"
    即:

<input id="test" type="text" onpaste="javascript:return false;"/>

7.onselectstart 事件
  说明:选取网页内容时触发
  案例:禁用选取功能
    <div id="test"></div>
    //方法1:
    在标签上添加onselectstart事件:
    onselectstart="javascript:return false;"
    即:

<div id="test" onselectstart="javascript:return false;"></div>    

    //方法2:
    绑定onselectstart事件

window.onload = function() {
    document.getElementById("test").onselectstart = function(){return false;}
}

8.oncontextmenu 事件
  说明:鼠标右键时触发
  案例:禁用右键菜单
    在标签上添加oncontextmenu事件:
    οncοntextmenu="javascript:return false;"
    即:

<input id="test" type="text" oncontextmenu="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:02
13.ondblclick 事件
  说明:鼠标双击时触发的事件
  举例:

<input type="checkbox" id="userName" ondblclick="javascript:alert('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.完全判定浏览器是在关闭的,没有什么完美的方法。如果你要将事务写到这里面去,就更是建议你不要这么做了。意外的情况太多

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值