常用 JS 操作

声明:以下内容摘录自其他网站,请尊重作者劳动成果。

// 跨浏览事件添加
function addEvent(obj, type, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(type, fn, false);
    } else if (obj.attachEvent) {   // 兼容IE
        obj.attachEvent('on' + type, fn);
    }
}

// 跨浏览器移除事件
function removeEvent(obj, type, fn) {
    if (obj.removeEventListener) {
        obj.removeEventListener(type, fn, false);
    } else if (obj.detachEvent) {   // 兼容IE
        obj.detachEvent('on' + type, fn);
    }
}

// 跨浏览器组织默认行为
function preDef(ev) {
    var e = ev || window.event;
    if (e.preventDefault) {
        e.preventDefault();
    } else {
        e.returnValue = false;
    }
}

// 跨浏览器获取目标对象
function getTarget(ev) {
    if (ev.target) {
        return ev.target;
    } else if (window.event.srcElement) {
        return window.event.srcElement;
    }
}

// 跨浏览器获取滚动位置
function getSP() {
    return {
        top: document.documentElement.scrollTop || document.body.scrollTop,
        left: document.documentElement.scrollLeft || document.body.scrollLeft
    }
}

// 跨浏览器获取可视窗口大小
function getWindow() {
    if (typeof window.innerWidth != 'undefined') {
        return {
            width: window.innerWidth,
            height: window.innerHeight
        }
    } else {
        return {
            width: document.documentElement.clientWidth,
            height: document.documentElement.clientHeight
        }
    }
}

// js 对象(配合下方注释内容使用)
function Person(name, age) {
    this.name = name;
    this.age = age;
    this.say = function () {
        return "name: " + this.name + " age: " + this.age;
    };
}
//var o = new Object();
//Person.call(o, "zhangsan", 21);
//console.log(o.say());   //name : zhangsan age: 20

// js 文件的异步加载和同步加载
// 在script标签内,用js创建一个script元素并插入到document中,这种就是异步加载js文件
// 异步加载
(function () {
    var s = document.createElement('script');
    s.type = 'test/javascript';
    s.async = true;
    s.src = 'http://code.jquery.com/jquery-latest.js';
    var x = document.getElementsByTagName('script')[0];
    x.parentNode.insertBefore(s, x);
})();

// js 阻止表单重复提交
// 有两种方法可以解决:一是提交之后,立刻禁用点击按钮;第二种就是提交之后取消后续的表单提交操作。
// document.getElementById("btn").disabled = true;//第一次提交后,将按钮禁用

// js 来判断一个字符串出现次数最多的字符,并统计这个次数
function countStr(str){
    var obj = {};
    for(var i = 0, l = str.length,k; i < l ;i++){
        k = str.charAt(i);
        if(obj[k]){
            obj[k]++;
        }else{
            obj[k] = 1;
        }
    }
    var m = 0,i=null;
    for(var k in obj){
        if(obj[k] > m){
            m = obj[k];
            i = k;
        }
    }
    return i + ':' + m;
}

 

转载于:https://my.oschina.net/beborn/blog/835509

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值