易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript事件系统的发展史

一个完整的事件系统,通常存在以下三个角色:
事件对象,用于储存事件的状态。
事件源对象,当前事件在操作的对象,如元素节点,文档对象,window对象,XMLHttpRequest对象等。
事件监听器,当一个事件源生成一个事件对象时,它会调用相应的回调函数进行操作。在IE中,事件对象恒为全局属性window.event的分身。
在w3c没有把其DOM 模型引入网页时,netscape与微软已经逼不及待到快他们熟悉的语言中把相关的DOM模型搞进来了。这其实也怪javascript之父忙于把抄袭其他语言,忽略了自身事件系统的建设。从此世界被划分为两大阵营了。
DOM0时代,这里的DOM指w3c的DOM。双方都设计两种绑定事件的方法,无侵入式与侵入式。你可以说内联式与非内联式的区别。
侵入式,双方都一样。没有办法,那是很早就实现的。那时IE只有抄袭的份,还不敢胡来。
<input name="ruby" onclick="alert(this.nam)" />
然后是无侵入式,这估计是它们都完成了各自的DOM模型,实现对元素节点的索引机制之后的事了。比如有以下网页片断:

<input
type="button"
name="button1"
value="aaaa"/>

我们必须自上而下,一步步找到此元素节点才能操作它。注意,那时没有所谓的document.getElementById。网景的做法,把相关绑定的代码放进一个script标签中:
<form name="form1">
<input
type="button"
name="button1"
value="aaaa"/>
</form>
如果你不想把代码用window.onload = function(){}这代码块括起来,那么你得把这script标签放于表单元素之后。
微软也有一套索引机制,基本与网景的一样,但IE4还引入了document.all与document.all.tags。不过IE还有另一套方式:
<script
for="button1"
event="onclick"
language="JavaScript">
alert("this.aaa")
</script>
不过,它用不了this(或者能,我不会),另要求一个script标签对应body中的一个标签,实在很浪费,最终被淘汰出局了。
这就是DOM0的绑定机制,另以内联方式写在标签中的代码,其实相当于以下方式:
<p id="aa" onclick="alert('aaaa')">相当于↓</p>
<script type="text/javascript">
var p = document.getElementById("aa")
p.onclick = new Function("alert('aaaa')")//相当于↓


相关文档:

javascript事件查询综合

click() 对象.click() 使对象被点击。
closed 对象.closed 对象窗口是否已关闭true/false
clearTimeout(对象) 清除已设置的setTimeout对象
clearInterval(对象) 清除已设置的setInterval对象
confirm("提示信息") 弹出确认框,确定返回true取消返回false
cursor:样式 更改鼠标样式 hand crosshair text wait help defa ......

Javascript 模态窗口

<html>
<head>
    <script language="javascript">
        function overlay() {
            xyz = document.getElementById("overlay");
   &n ......

javascript 动态添加事件


<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
    <title></title>
</head>
<body>
       
    <form id="form1">
    <div>
  & ......

javascript如何定义类

javascript如何定义类呢?
面试的时候有学生被问到这个问题。
实际上javascript的方法就是一个对象。
利用这一点,我们可以使用javascript定义类。
如下例子所示。
<mce:script language="javascript"><!--
//javascript的面向对象的例子
function sayHi(){
alert("Hello ,"+this.name);
}
function get ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号