javascript入门经典---笔记3

5.1浏览器对象

浏览器对象模型(BOM)

document 对象代表了浏览器的页面,history对象包含了用户所访问过的页面的历史信息,navigator 对象包含了浏览器自身的相关信息,screen对象包含了客户端计算机显示器显示能力的信息,location 对象则包含了浏览器所加载的当前页面的 URL 信息。

BOM 是一个有层次的对象结构,顶端是window对象,页面包含在window框架中。在BOM中,document 对象用于代表页面本身。

上图描述了window对象与document 对象的关系。

1 window对象

window对象是一个全局对象,因此可以直接使用全局对象的属性和方法,而无需写出全局对象名。比如window 对象的alert()方法,我们可以直接用alert(“**”)代替window . alert("**")。

2 document对象----代表页面本身的对象

  2.1  images 数组对象------不是imagines。。。。

  页面中每一个img对象都被保存在images[ ] 数组中,他是document 对象的一个属性。页面中的第一个图片,用document.images[0] 表示。

   对于<img  name="myimange"  src=""> 则也可以用document.images[“myimaine”]来调用。

<html>

<body>
<img width="200" height="150" name="img1" src="" > 
<script type="text/javascript"> //-------script在 img 下面可以正常加载-------
var myimages= new Array ("usa.gif","canada.gif","jamaica.gif","mexico.gif");
document.images["img1"].src=myimages[1];
</script>
</body>
</html>
但是当这样写时,图片没有加载出来??

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var myimages[]= new Array (1.gif,2.gif);
document.images("myimane").src=myimages[0];
</script>
</head>
<body>
<img alt="sorry" src="" name=myimane> //------alt:当图片不能打开时显示alt设置的说明文字----

</body>
</html>

2.2 links 数组

links[ ] 数组表示页面中所有超链接的集合

3 将事件处理代码连结到web 页面的事件

当需要一个触发事件才可以触发所需要发生的事件时,可以将希望执行的事件处理代码定义为一个函数,然后用onclick 来调用-------》登录跳转

用window对象的load 事件将页面中的所有超链接的href 属性列出来:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var link = new Array();
var las = document.getElementById("a");
function displayLinks(){
for(var i=0;i<document.links.length;i++)
{link[i]=document.links[i].href;//-----输出的是超链接里的href属性------
}
var mylink = link.join(";"); //------join()方法可以将数组中所有元阿苏转换为字符-------
alert(mylink);  //-------这里如果用document.write的话,因为onload 的时候执行,文档流已经关闭了 write会重新打开文档流,把原文档冲掉---------
}
</script>
</head>
<body  οnlοad="displayLinks()">
<div id="a">
<a href="http://www.baidu.com">here<br></a>
<a href="http://www.zhihu.com">知乎<br></a>
<a href="http://www.sina.com">新浪<br></a>
<a href="http://www.tengxun.com">腾讯</a>
</div>
</body>
</html>

或者不用onload  直接把 JS 代码写到body 里,因为如果还是在head里面,用alert 得到的 href 是空的。下面直接把得到的字符串写入另外一个<div>中了

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

</head>
<body >
<div id="a">
<a href="http://www.baidu.com">here<br></a>
<a href="http://www.zhihu.com">知乎<br></a>
<a href="http://www.sina.com">新浪<br></a>
<a href="http://www.tengxun.com">腾讯</a>
<script type="text/javascript">
var link = new Array();
var a = document.getElementById("a");
for(var i=0;i<document.links.length;i++)
{link[i]=document.links[i].href;//-----输出的是超链接里的href属性------
}
var mylink = link.join(";"); //------join()方法可以将数组中所有元阿苏转换为字符-------
var para=document.createElement("div");
para.innerHTML = mylink;  //-----这里不能用document.write了------
a.appendChild(para);
</script>
</div>
</body>
</html>


鼠标指针移动到图片上时切换成另外一张图片

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
//var myimg = document.images["changeimg"];在外面定义的话出错???
function mouseover(){
	var myimg = document.images["changeimg"];
	myimg.src="Img1.jpg"
}
function mouseout(){
	var myimg = document.images["changeimg"];
	myimg.src="Img2.jpg"
}

</script>
</body>
<img alt="n" src="Img1.jpg" name="changeimg"  onmouseOver="mouseover();"  onmouseOut="mouseout();">
</html>

为什么这个错了??

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
//var myimg = document.images["changeimg"];在外面定义的话出错???

function mouseout(){
	//var myimg = document.images["changeimg"];
	if(document.images["changeimg"].src != "Img2.jpg")
	 document.images["changeimg"].src="Img2.jpg";
	  else  document.images["changeimg"].src="Img1.jpg";
}

</script>
</body>
<img alt="n" src="Img1.jpg" name="changeimg"   οnclick="mouseout();">
</html>



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值