《JavaScript高级程序设计(第3版)》书中EventUtil对象代码

《JavaScript高级程序设计(第3版)》书中EventUtil对象代码由于学习JS的目的是服务爬取过程,所以书中javascript知识只是读了一遍,对于动手做东西的话肯定是不够的,不过至少有个印象了。

欢迎大家来到IT世界,在知识的湖畔探索吧!

由于学习JS的目的是服务爬取过程,所以书中javascript知识只是读了一遍,对于动手做东西的话肯定是不够的,不过至少有个印象了。下一步是学习一下PyQt5,这是用来给python做UI的,可以通过installer进行打包成exe文件。

对于整个学习笔记文档,我会找个地方将文档上传后再发布出来。

《JavaScript高级程序设计(第3版)》书中EventUtil对象代码

​完整的EventUtil对象

var EventUtil = {
    addHandler: function (element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    },
    removeHandler: function (element, type, handler) {
        if (element.removeEventListener) {
            element.removeEventListener(type, handler, false);
        } else if (element.detachEvent) {
            element.detachEvent("on" + type, handler);
        } else {
            element["on" + type] = null;
        }
    },
    getEvent: function(event){
        return event ? event : window.event;
    },
    getTarget: function(event){
        return event.target || event.srcElement;
    },
    preventDefault: function(event){
        if (event.preventDefault){
            event.preventDefault();
        } else {
            event.returnValue = false;
        }
    },
    stopPropagation: function(event){
        if (event.stopPropagation){
            event.stopPropagation();
        } else {
            event.cancelBubble = true;
        }
        },
    getCharCode: function(event){
        if (typeof event.charCode == "number"){
            return event.charCode;
        } else {
            return event.keyCode;
        }
    },
    getClipboardText:function (event) {
        var clipboardData = (event.clipboardData || window.clipboardData);
        return clipboardData.getData("text");
    },
    setClipboardText:function (event,value) {
        if (event.clipboardData){
            return event.clipboardData.setData("text/plain",value);
        } else if (window.clipboardData){
            return window.clipboardData.setData("text",value);
        }
    },
};
// 获取选中的option

function getSelectedOptions(selectbox) {
    var result = new Array();
    var option = null;

    for (var i=0,len=selectbox.options.length;i<len;i++){
        option = selectbox.options[i];
        if (option.selected){
            result.push(option);
        }
    }
    return result;
}
// 为select添加新的option
function createNewOption(selectbox,value,text){
    // 创建元素
    var newOption = document.createElement("option");
    // 为元素文本的子节点
    newOption.appendChild(document.createTextNode(text));
    newOption.setAttribute("value",value);
    // 将新的节点挂到select下面
    selectbox.appendChild(newOption);
}
// 移除所有select的option项
function clearSelectbox(selectbox) {
    var len = selectbox.options.length;
    for (i=len;i>0;i--){
        selectbox.remove(i);
    }
}
// 对form进行序列化
function serialize(form){
    var parts = [],
    field = null,
    i,
    len,
    j,
    optLen,
    option,
    optValue;
    for (i=0, len=form.elements.length; i < len; i++){
        field = form.elements[i];
        switch(field.type){
            case "select-one":
            case "select-multiple":
                if (field.name.length){
                    for (j=0, optLen = field.options.length; j < optLen; j++){
                        option = field.options[j];
                        if (option.selected){
                            optValue = "";
                            if (option.hasAttribute){
                                optValue = (option.hasAttribute("value") ? option.value : option.text);
                            } else {
                                optValue = (option.attributes["value"].specified ? option.value : option.text);
                            }
                            parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(optValue));
                        }
                    }
                }
                break;
            case undefined: //字段集
            case "file": //文件输入
            case "submit": //提交按钮
            case "reset": //重置按钮
            case "button": //自定义按钮
                break;
            case "radio": //单选按钮
            case "checkbox": //复选框
                if (!field.checked){
                    break;
                }
            /* 执行默认操作 */
            default:
                //不包含没有名字的表单字段
                if (field.name.length){
                    parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value));
                }
        }
    }
    return parts.join("&");
}

欢迎大家来到IT世界,在知识的湖畔探索吧!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/21973.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信