javascript代码与html分离进阶

nodeName属性的结果总是大写的,即使在html代码中标签是小写。

onclick事件虽然叫onclick,但是通过tab来切换链接,并通过回车按下执行的点击大多都会执行onclick事件。

HTML-DOM DOM-Core区别
DOM是一个通用的东西,并不专属于javascript,针对不同的领域定制了很多不同的DOM
像getAttribute和setAttribute是DOM中的基础方法,这些方法在HTML-DOM中提供了简便的访问方法。比如tag.href

下面的例子是将上面说的图库的例子进行了重写,这里使用了HTML-DOM中的各种简便写法。

另外,将javascript和HTML进行完全分离,当javascript不被浏览器支持时,HTML的照样可以访问。最重要的是这里html看起来不没有任何异常(没有使用javascript:伪协议,html中没有onclik函数)

图库的html代码

<!doctype html>

<a href="img1.jpeg" title="IMG1">IMG1</a><br>
<a href="img2.jpeg" title="IMG2">IMG2</a><br>
<a href="img3.jpeg" title="IMG3">IMG3</a><br>

<hr>
<h1 id="title">default</h1>
<hr>
<img id="show" src="img1.jpeg">

<script src="javascript.js"></script>

相关javascript代码,注意给onload或者onclick赋值的时候必须是函数定义(可带参数),或者函数地址,或者匿名函数。

window.onload = function() //匿名函数或实名函数均可
{
	var links = document.getElementsByTagName("a");
	var target = document.getElementById("show");
	var title = document.getElementById("title");
	
	for(var i=0; i < links.length; i++) 
	{
		links[i].onclick = function() //匿名函数或实名函数均可
		{ 
			//links[i]是for循环内的变量,不能在这个函数中使用。
			//当点击链接执行函数时,对于链接执行的onclick函数来说
			//并不认识links[i]是什么东西,相反,this则代表a标签本身。
			//target.src = links[i].href); 
			target.src = this.href
			title.firstChild.nodeValue = this.title;
			return false;
		}
	}
}


onload事件,onload 事件会在页面或图像加载完成后立即发生。

image,layer,window都支持该事件,本文中用到的时window的unload事件。但是默认的unload赋值时,可以写一段javascript代码,赋值函数时,只能写一个函数,当多次赋值时只有最后一个有效。下面方法实现了多次赋值的功能。

1.笨方法,直接写一个封装函数

window.onload = function(){
	firstFunction();
	secondFunction();
}

2.高档一些的做法,如下所述,形成了一个对了,可以不停的进行Add

function addOnLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof(oldonload) != "function") //如果还没有赋值过函数
	{
		window.onlaod = func;
	}
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}
}

《完》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值