①添加事件方法

addHandler:function(element,type,handler){

    if(element.addEventListener){//检测是否为DOM2级方法
        element.addEventListener(type, handler, false);
    }else if (element.attachEvent){//检测是否为IE级方法
        element.attachEvent("on" + type, handler);
    else {//检测是否为DOM0级方法
        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;
        }
    }

⑥mouseover和mouseout 事件才包含的获取相关元素的方法

//mouseover和mouseout 事件才包含的获取相关元素的方法

getRelatedTarget: function(event){
    if (event.relatedTarget){
        return event.relatedTarget;
    else if (event.toElement){
        return event.toElement;
    else if (event.fromElement){
        return event.fromElement;
    else {
        return null;
    }
}

⑦鼠标滚轮判断

    /*对于mousedown 和mouseup 事件来说,则在其event 对象存在一个button 属性,

表示按下或释放的按钮。DOM的button 属性可能有如下3 个值:0 表示主鼠标按钮,1 表示中间的鼠
标按钮(鼠标滚轮按钮),2 表示次鼠标按钮。在常规的设置中,主鼠标按钮就是鼠标左键,而次鼠标
按钮就是鼠标右键。
IE8 及之前版本也提供了button 属性,但这个属性的值与DOM 的button 属性有很大差异。
 0:表示没有按下按钮。
 1:表示按下了主鼠标按钮。
 2:表示按下了次鼠标按钮。
 3:表示同时按下了主、次鼠标按钮。
 4:表示按下了中间的鼠标按钮。
 5:表示同时按下了主鼠标按钮和中间的鼠标按钮。
 6:表示同时按下了次鼠标按钮和中间的鼠标按钮。
 7:表示同时按下了三个鼠标按钮。*/
getButton: function(event){
    if (document.implementation.hasFeature("MouseEvents""2.0")){
        return event.button;
    else {
        switch(event.button){
            case 0:
            case 1:
            case 3:
            case 5:
            case 7:
            return 0;
            case 2:
            case 6:
            return 2;
            case 4:
            return 1;
        }
    }
}

⑧能够取得鼠标滚轮增量值(delta)的方法

getWheelDelta: function(event){

    if (event.wheelDelta){
        return (client.engine.opera && client.engine.opera < 9.5 ?
            -event.wheelDelta : event.wheelDelta);
    else {
        return -event.detail * 40;//firefox中的值为+3表示向上滚,-3表示向下滚
    }
}

⑨跨浏览器的方式取得字符编码

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");
    }

11.设置剪贴板中的数据

setClipboardText: function(event, value){

        if (event.clipboardData){
            return event.clipboardData.setData("text/plain", value);
        else if (window.clipboardData){
            return window.clipboardData.setData("text", value);
        }
    }

一、             为什么学习JavaScript

  1. 所有的主流浏览器都支持js
  2. 目前大部分网页都是用js
  3. 可以使静态网页变成绚丽的动态网页
  4. 易学性,只要有文本编译器就能够书写;可以用简单的标签完成一些基本的操作。

二、             Js指令

  1. Js指令是写在<script>······</script>中间的
  2. Js文件和css文件一样可以写下HTML文件中,也可以单独写在一个文件里,原理和css文档类似。
  3. var变量的命名规则

i.              变量必须使用字母、下划线、或者美元符($)开始

ii.              之后可以使用任意多个英文字母、数字、下划线(_)或者美元符($)

iii.              同时不能使用JavaScript的关键字和保留字相同

iv.              他是仅仅相当于把一个值的地址,传给了变量,一个变量可以使数据类型、字符类型、bool类型。

  1. alert(“hello!”);                   弹出一个只有一个确定按钮的窗口。

注意:

1. 在点击对话框"确定"按钮前,不能进行任何其它操作。

2. 消息对话框通常可以用于调试程序。

3. alert输出内容,可以是字符串或变量,与document.write 相似。

  1. confirm(“hello!”);              弹出的是一个确定和取消两个按钮的小窗口。确定返回true,取消返回false。
  2. promptprompt(str1, str2);      弹出消息对话框,通常用于询问一些需要与用户交互的信息。弹出消息对话框(包含一个确定按钮、取消按钮与一个文本输入框)。

参数说明:

str1: 要显示在消息对话框中的文本,不可修改

str2:文本框中的内容,可以修改

返回值:

1.点击确定按钮,文本框中的内容将作为函数返回值

2.点击取消按钮,将返回null

  1. document.write("hello");         在窗口输出文字
  2. document.getElementById("p1").style.color="blue";    可以通过id进行样式的修改。
  3. window.open(‘’,’’)             打开窗口

窗口的属性值:

  1. <窗口对象>.close();        关闭指定的窗口对象。
  2. Window.colse();       关闭本窗口
  3. object.className=”class” 可以设置对象的类名
  4. function  函数命名

三、             DOM节点

  1. 1.         元素节点: <html>、<body>、<p>等都是元素节点,即标签。(标签)
  2. 2.         文本节点:向用户展示的内容,如<li>...</li>中的JavaScript、DOM、CSS等文本。(文字)
  3. 3.         属性节点:元素属性,如<a>标签的链接属性href="http://www.imooc.com"。(属性值设置)

Var命名变量,命名规则为:

  1. 以字母、下划线或者美元符号($)开始,后面可以跟字母、下划线、美元符号($)、数字。
  2. 变量区分大小写,例如:A和a是两个变量
  3. 不能使用JavaScript的关键词以及保留字。

Var的定义的方式为:

  1. Var mychar;
  2. Var mychar1,mychar2;
  3. Var mychar3=”JavaScript”,mychar4;

符号说明:

“=”是赋值符,不是等于。“==”是等于。

“+”在数字之间的时候为,加号使用,在字符串之间的为,连接作用。字符串使用引号括起来。数字不需要的。

对于“++”、“--”相当于+1和-1。如果在变量的前面就是先操作在使用变量,在后面就是先使用在操作变量。

数组:

一类存放数据的组合,使用一类具有规律的标号易于查询。

创建的方式:
      var mychar =new Array();(注意大小写,在JavaScript中区分大小写)

可以在Array(“设置数组的大小”);        但是在JavaScript中数组是可以变长的 ,也就是说就算规定了数组的大小,还是可以设置数组长度之外的数据的。

在任何的时候都可以增加数组的成员。

通过(*.length)可以显示当前数组的长度,也可以进行修改。

关于各个事件引用的方式为:

onclick    鼠标单击事件

onmouseover     鼠标经过事件

onmouseout      鼠标移出事件

onfocus   光标聚焦事件

onblur      光标失焦事件

onselect   内容选中事件

onchange      文本框内容改变事件

onload     加载事件

onunload      卸载事件

转载于:https://www.cnblogs.com/792155879a/p/5723439.html

js的一些兼容性写法相关推荐

  1. JS编辑器获取选择内容的HTML多浏览器兼容性写法(支持Chorme、Firefox)

    昨天突然兴起,准备完善秋色园后台的编辑器关于Chrome.FireFox下的选择内容的HTML兼容处理. JS编辑器获取选择内容的HTML兼容性写法问题描述: 对于如何获取选择的文本(包括Html标签 ...

  2. 移动常见问题--H5标签之浏览器兼容性、JS之浏览器兼容性、CSS3之浏览器兼容性、移动端动画、click300ms延迟、单行和多行文字溢出省略、水平居中和垂直居中

    1. H5标签之浏览器兼容性 在移动端时可以放心的使用h5相关的标签 但是如果需要兼容一些低版本的浏览器,例如IE6/7/8,此时可以到  [兼容] 下载一个 html5shiv.min.js  文件 ...

  3. .php中js写法,js函数常见的写法以及调用方法

    写在前面:本文详细的介绍了5中js函数常见的写法以及调用的方法,平时看别人代码的时候总是看到各种不同风格的js函数的写法.不明不白的,找了点资料,做了个总结,需要的小伙伴可以看看,做个参考. 1.常规 ...

  4. js中foreach有三种写法,你知道吗

    JavaScript的foreach 初始化 写法 1.经典写法 2.js的foreach 3.es6的foreach 初始化 先创建一个h5文件,并定义一个数组 <!DOCTYPE html& ...

  5. 浏览器兼容css_CSS 样式浏览器前缀兼容性写法、生效写法

    给各浏览器兼容css样式是最简单的方法就是在前方加上浏览器私有前缀,便于浏览器解析并根据各个的私有前缀来进行不停的属性渲染 -moz- /* 火狐等使用Mozilla浏览器引擎的浏览器 */ -web ...

  6. css设置背景透明 兼容,每日一更之CSS背景透明内容不透明及CSS兼容性写法

    有一个浏览器,让所有的前端极度痛恨,没错,就是IE.IE9以上版本的浏览器还好,但是,IE9及以下浏览器就相当的恶心,对于前端来说,最基本的就是还原UI设计图,但是当你使用一些CSS3属性的时候,IE ...

  7. 关于使用js复制到剪切板的兼容性写法

    // 复制到剪切板 async function copyHandler(text) {try{if(navigator.clipboard && window.isSecureCon ...

  8. gulp前端构建化工具,帮你搞定不同浏览器的兼容性写法问题

    .相信所有的前端攻城狮.听到浏览器兼容性问题都深有体会. 浏览器兼容性问题,无非就是因为浏览器内核不同,浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.还有就是根据浏览器的版本不同,所兼 ...

  9. html 引入js 兼容,JS跨浏览器兼容性解决思路及方案汇总,常见JS兼容性知识点汇总...

    上篇文章我们介绍了,处理CSS浏览器兼容性的4个解决方案:浏览器CSS样式初始化.浏览器私有属性,CSS hack语法和自动化插件,有兴趣的可以看看,链接放到本文结尾 本文主要介绍JS的跨浏览器兼容性 ...

最新文章

  1. 也许是史上最不良心的低阶计算几何讲解和习题集??
  2. 骚操作!有了这款神器,轻轻松松用Python写APP!(文末彩蛋)
  3. PHP-代码审计-ini配置文件
  4. C++ inline variable
  5. 【安全牛学习笔记】kali TOP10 安全工具:
  6. 获取本地ip地址适用于windows和Linux环境
  7. git原理和常用操作
  8. 5.8. tensorflow2实现SVD推荐系统——python实战 (下篇)
  9. 5.8Reformer 意境级理解
  10. FL Studio20.8.2(水果win10)中文版主要软件更新内容
  11. 【FIR.im赞助】jQuery编程挑战#012:生成菜单添加和删除动画效果
  12. linux界面右键无效,在linuxtkin中运行GUI时,右键单击菜单消失得太快
  13. 十个高质量自学网站,让你的技术突飞猛进
  14. 疑因内部宫斗被离职,中兴70后程序员从公司坠楼 ​​​​
  15. 银行招计算机专业算什么岗,银行计算机专业岗位全方位分析
  16. 联想网站诊断分析(12.10)
  17. 零基础也能用ChatGPT写代码,简直不要太爽
  18. 展讯走出困境开始爬坡
  19. JS--数据类型--渡一教育(视频笔记)
  20. Mono入门教程(一)--------------C++中整合Mono

热门文章

  1. Elasticsearch 嵌套类型nested
  2. Linux虚拟文件系统
  3. ASP.NET Core开发Docker部署
  4. I.MX6 android 4.2 源码下载
  5. shiro web环境初始化过程
  6. 27_多线程_第27天(线程安全、线程同步、等待唤醒机制、单例设计模式)
  7. 底部导航栏使用BottomNavigationBar
  8. 百度运维部电子竞技大赛!
  9. cemtos7.2搭建samba
  10. motion加树莓派打造实时监控