• HTML5中对于网络是否断开的检测.很有意思哦


     1 //事件的封装
     2 var EventUtil = {
     3     addHandler: function (element, type, handler) {//注册事件
     4         if (element.addEventListener) {//非IE
     5             element.addEventListener(type, handler, false);
     6         }
     7         else if (element.attachEvent) {//IE
     8             element.attachEvent("on" + type, handler);
     9         }
    10         else {//dom0级
    11             element["on" + type] = handler;
    12         }
    13     },
    14     removeHandler: function (element, type, handler) {//取消注册事件
    15         if (element.removeEventListener) {//非IE
    16             element.removeEventListener(type, handler, false);
    17         }
    18         else if (element.detachEvent) {//IE
    19             element.detachEvent("on" + type, handler);
    20         }
    21         else {//dom0级
    22             element["on" + type] = null;
    23         }
    24     },
    25     getEvent: function (event) {//返回event的引用
    26         return event ? event : window.event;
    27     },
    28     getTarget: function (event) {//返回鼠标单击的目标对象
    29         return event.target || event.srcElement;
    30     },
    31     preventDefault: function (event) {//取消默认事件(a的href,radio,checkbox,)
    32         if (event.preventDefault) {
    33             event.preventDefault();
    34         }
    35         else {
    36             event.returnValue = false;
    37         }
    38     },
    39     stopPropagation: function (event) {//因为这个EventUtil只支持冒泡,不支持事件捕获,所以这个方法只能阻止冒泡
    40         if (event.stopPrapagation) {
    41             event.stopPropagation();
    42         }
    43         else {
    44             event.cancelBubble = true;
    45         }
    46     },
    47     getRelatedTarget: function (event) {//获取相关元素
    48         /*
    49         页面中有一个div;当鼠标离开这个div时,事件的主目标是div,而相关元素是body.
    50         mouseover:事件的主目标是获得光标的元素,而相关元素就是那个失去光标的元素.
    51         mouseout:事件的主目标是失去光标的元素,而相关元素使获得光标的那个元素.
    52         */
    53         if (event.relatedTarget) { return event.relatedTarget; }
    54         else if (event.toElement) { return event.toElement; }
    55         else if (event.fromElement) { return event.fromElement; }
    56         else { return null; }
    57     },
    58     getButton: function (event) {//获取鼠标按钮的点击方式
    59         if (document.implementation.hasFeature("MouseEvents", "2.0")) { return event.button; }
    60         else {
    61             switch (event.button) {
    62                 case 0:
    63                 case 1:
    64                 case 3:
    65                 case 5:
    66                 case 7:
    67                     return 0; //左击
    68                 case 2:
    69                 case 6:
    70                     return 2; //中间键
    71                 case 4:
    72                     return 1; //右击
    73             }
    74         }
    75     }
    76 };
    77 
    78 
    79 //是否在线的判断:
    80  window.onload = function () {
    81             function addMessage(str) {
    82                 var oDiv = document.getElementById("line");
    83                 var oP = document.createElement("p");
    84                 oP.innerHTML = str;
    85                 oDiv.appendChild(oP);
    86             }
    87             EventUtil.addHandler(window, "online", function () {
    88                 addMessage("在线");
    89             });
    90             EventUtil.addHandler(window, "offline", function () {
    91                  addMessage("不在线");
    92             });
    93         }
    1 <body>
    2 在线检测;
    3 <div id="line"></div>
    4 </body>

    测试环境:

    结果:

  • 相关阅读:
    如何使用WPF用户界面框架编译EasyPlayPro-Win版本网页无插件视频播放器?
    【解决方案】TSINGSEE青犀视频智慧校园解决方案
    TSINGSEE青犀视频开发rtp推流如何使用ffmpeg配置rtp打包模式?
    TSINGSEE青犀视频部署流媒体服务器如何通过分布式存储突破设备接入及存储瓶颈?
    mysql--存储引擎
    数据库-基本操作
    初识数据库
    mysql---索引
    数据类型--mysql
    mysql--权限问题
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/3582085.html
Copyright © 2020-2023  润新知