js的一些兼容性写法
①添加事件方法
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
- 所有的主流浏览器都支持js
- 目前大部分网页都是用js
- 可以使静态网页变成绚丽的动态网页
- 易学性,只要有文本编译器就能够书写;可以用简单的标签完成一些基本的操作。
二、 Js指令
- Js指令是写在<script>······</script>中间的
- Js文件和css文件一样可以写下HTML文件中,也可以单独写在一个文件里,原理和css文档类似。
- var变量的命名规则
i. 变量必须使用字母、下划线、或者美元符($)开始
ii. 之后可以使用任意多个英文字母、数字、下划线(_)或者美元符($)
iii. 同时不能使用JavaScript的关键字和保留字相同
iv. 他是仅仅相当于把一个值的地址,传给了变量,一个变量可以使数据类型、字符类型、bool类型。
- alert(“hello!”); 弹出一个只有一个确定按钮的窗口。
注意:
1. 在点击对话框"确定"按钮前,不能进行任何其它操作。
2. 消息对话框通常可以用于调试程序。
3. alert输出内容,可以是字符串或变量,与document.write 相似。
- confirm(“hello!”); 弹出的是一个确定和取消两个按钮的小窗口。确定返回true,取消返回false。
- promptprompt(str1, str2); 弹出消息对话框,通常用于询问一些需要与用户交互的信息。弹出消息对话框(包含一个确定按钮、取消按钮与一个文本输入框)。
参数说明:
str1: 要显示在消息对话框中的文本,不可修改
str2:文本框中的内容,可以修改
返回值:
1.点击确定按钮,文本框中的内容将作为函数返回值
2.点击取消按钮,将返回null
- document.write("hello"); 在窗口输出文字
- document.getElementById("p1").style.color="blue"; 可以通过id进行样式的修改。
- window.open(‘’,’’) 打开窗口
窗口的属性值:
- <窗口对象>.close(); 关闭指定的窗口对象。
- Window.colse(); 关闭本窗口
- object.className=”class” 可以设置对象的类名
- function 函数命名
三、 DOM节点
- 1. 元素节点: <html>、<body>、<p>等都是元素节点,即标签。(标签)
- 2. 文本节点:向用户展示的内容,如<li>...</li>中的JavaScript、DOM、CSS等文本。(文字)
- 3. 属性节点:元素属性,如<a>标签的链接属性href="http://www.imooc.com"。(属性值设置)
Var命名变量,命名规则为:
- 以字母、下划线或者美元符号($)开始,后面可以跟字母、下划线、美元符号($)、数字。
- 变量区分大小写,例如:A和a是两个变量
- 不能使用JavaScript的关键词以及保留字。
Var的定义的方式为:
- Var mychar;
- Var mychar1,mychar2;
- Var mychar3=”JavaScript”,mychar4;
符号说明:
“=”是赋值符,不是等于。“==”是等于。
“+”在数字之间的时候为,加号使用,在字符串之间的为,连接作用。字符串使用引号括起来。数字不需要的。
对于“++”、“--”相当于+1和-1。如果在变量的前面就是先操作在使用变量,在后面就是先使用在操作变量。
数组:
一类存放数据的组合,使用一类具有规律的标号易于查询。
创建的方式:
var mychar =new Array();(注意大小写,在JavaScript中区分大小写)
可以在Array(“设置数组的大小”); 但是在JavaScript中数组是可以变长的 ,也就是说就算规定了数组的大小,还是可以设置数组长度之外的数据的。
在任何的时候都可以增加数组的成员。
通过(*.length)可以显示当前数组的长度,也可以进行修改。
关于各个事件引用的方式为:
onclick 鼠标单击事件
onmouseover 鼠标经过事件
onmouseout 鼠标移出事件
onfocus 光标聚焦事件
onblur 光标失焦事件
onselect 内容选中事件
onchange 文本框内容改变事件
onload 加载事件
onunload 卸载事件