1 JavaScipt的组成
JavaScript由ECMAScript(核心)、BOM(浏览器对象模型)、DOM(文档对象模型)三部分组成。
2 ECMAScript
ECMAScript是ECMA-262定义的一门语言,web浏览器是ECMAScript实现可能存在的一种宿主环境,主要定义了如下:
3 BOM
BOM用于支持访问和操作浏览器的窗口,主要包括:
- 1 弹出新浏览器窗口
- 2 移动、缩放和关闭浏览器窗口
- 3 navigator对象,提供浏览器的详尽信息
- 4 location对象,提供浏览器加载界面的详尽信息
- 5 screen对象,提供关于用户屏幕分辨率的详尽信息
- 6 performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息
- 7 对cookie的支持
- 8 其他自定义对象,如XMLHttpRequest和IE的ActiveXObject
3.1 Window对象
window.open(url)
window.close()
window.moveTo(500, 0);
window.resizeTo(800, 600);
window.outerHeight
window.outerWidth
window.innerHeight
window.innerWidth
3.2 navigator对象(了解即可)
浏览器对象,通过这个对象可以判定用户所使用的浏览器,包含了浏览器相关信息。
navigator.appName
navigator.appVersion
navigator.userAgent
navigator.platform
3.3 screen对象(了解即可)
屏幕对象,不常用,一些属性:
screen.availWidth
screen.availHeight
3.4 history对象(了解即可)
window.history 对象包含了用户对当前页面的浏览历史
history.forward()
history.back()
3.5 location对象
location.href
location.href="URL"
location.reload()
3.6 弹出框
alert("这是警示");
var answer = confirm('输入正确吗?');
console.log(answer);
var str = window.prompt("请输入密码","password")
console.log(str);
3.7 计时器
var timer = setTimeout(function(){alert(123);}, 3000)
clearTimeout(timer);
var timer = setInterval(function(){console.log(123);}, 3000)
clearInterval(timer);
4 DOM
文档对象模型(DOM)是一个应用编程接口(API),用于在HTML中使用扩展的XML。
4.1 查找标签
document.getElementById
document.getElementsByClassName
document.getElementsByTagName
parentElement
children
firstElementChild
lastElementChild
nextElementSibling
previousElementSibling
4.2 节点操作
var divEle = document.createElement("div");
var imgEle=document.createElement("img");
imgEle.setAttribute("src", "http://image11.m1905.cn/uploadfile/13178.jpg");
var d1Ele = document.getElementById("d1");
d1Ele.appendChild(imgEle);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<meta name="description" />
<title>添加删除子节点</title>
<style>
body{
margin: 0;
padding: 0;
}
.fu{
position:absolute;
display: block;
margin: 0;
height: 400px;
width: 400px;
color: brown;
font-size: medium;
text-align: center;
line-height: 400px;
background-color: rgb(90, 137, 179);
}
.zi{
height: 30px;
width: 80px;
color: rgb(43, 226, 98);
}
</style>
</head>
<body>
<div class="fu" onclick="addEle()">父元素</div>
</body>
<script>
function addEle(){
var fuEle = document.getElementsByClassName("fu");
var ziEle = document.createElement("button");
ziEle.innerText = "子元素"
ziEle.classList.add("zi");
ziEle.addEventListener("click",removeEle);
fuEle[0].appendChild(ziEle);
}
function removeEle(e){
e.stopPropagation();
var fuEle = document.getElementsByClassName("fu");
var ziEle = document.getElementsByClassName("zi");
fuEle[0].removeChild(ziEle[0]);
}
</script>
</html>
4.3 属性操作
var divEle = document.getElementById("d1");
divEle.setAttribute("age","18")
divEle.getAttribute("age")
divEle.removeAttribute("age")
imgEle.src
imgEle.src = "..."
4.4 类操作
var Ele = document.getElementById("i1");
Ele.classList.remove(cls) 删除指定类
Ele.classList.add(cls) 添加类
Ele.classList.contains(cls) 存在返回true,否则返回false
Ele.classList.toggle(cls) 存在就删除,否则添加
4.5 事件
HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,这些属性可插入 HTML 标签来定义事件动作。
onclick
ondblclick
onfocus
onblur
onchange
onkeydown
onkeypress
onkeyup
onload
onmousedown
onmousemove
onmouseout
onmouseover
onselect
onsubmit
|