zoukankan      html  css  js  c++  java
  • 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事件:
        oncopy="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.oncopy= new Function("event.returnValue=false");
        //方法三
        document.oncopy = function() {event.returnValue=false;}
    </script>

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

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

        或

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

    6.onpaste 事件
      说明:进行粘贴时触发
      案例:禁用粘贴
        在标签上添加onpaste事件:
        onpaste="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事件:
        oncontextmenu="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.完全判定浏览器是在关闭的,没有什么完美的方法。如果你要将事务写到这里面去,就更是建议你不要这么做了。意外的情况太多

  • 相关阅读:
    注册博客园
    算法与数据结构-树-简单-二叉搜索树中的众数
    算法与数据结构-最小化舍入误差以满足目标
    算法与数据结构-设计有限阻塞队列
    分布式学习笔记2
    JS学习笔记1
    生活-上海租房经验
    分布式技术-学习笔记1
    HashMap-线程不安全的原因
    MySQL-复制
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/6541598.html
Copyright © 2011-2022 走看看