zoukankan      html  css  js  c++  java
  • IE和FireFox的Javascript的事件和事件处理总结

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

    使IE和FireFox事件停止的方法:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

    <title>Untitled Document</title>

    </head>

    <script type="text/javascript">

    </script>

    <body>

    <input name="Hello" type="button" value="Hello" onclick="Show(this)" />

    <a    id="myLink"   href="http://fego.home.cn/members/wg/default.aspx"

    target="_blank">

    mouseDown me

    </a>

    <script type="text/javascript">

    var myLink = document.getElementByIdx("myLink");

    var oldHandler = myLink.onclick;

    function newHandler()

    {

    alert("new handler");

    //去掉下面的注释,就会将事件关闭。

    //return false;

    }

    function newHandler1()

    {

    alert("I can’t Show");

    }

    myLink.onclick = function(){

    if(oldHandler!=undefined)

       oldHanlder();

       return newHandler();

    } </script>

    </body>

    </html>

    通常,如果浏览器执行某种默认动作来响应一个事件,那么可以返回false阻止浏览器执行相应的动作。

    判断DOM标准的方法:document.implementation.hasFeature(“Events”,”2.0”);

    IE的事件:

    由于IE不支持DOM2的事件模型,那么我们只有为IE编写特定的事件模型:

    在DOM2的模型中,我们可以使用addEventListener来添加新的事件函数,而我们可以在

    IE中添加一个新的函数来处理事件。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

    <title>Untitled Document</title>

    </head>

    <script type="text/javascript">

    </script>

    <body>

    <input name="Hello" type="button" value="Hello" onclick="Show(this)" />

    <div id="mydiv">mouseDown me</div>

    <script type="text/javascript">

    var mydiv = document.getElementByIdx("mydiv");

    var oldHandler = mydiv.onclick;

    function newHandler()

    {

    alert("new handler");

    }

    mydiv.onclick = function(){ newHandler(); if(oldHandler!=undefined) oldHanlder();}

    </script>

    </body>

    </html>

    IE Event对象,只能通过window.event

    Event属性

    作用

    type

    与DOMEvent的type相同

    srcElement

    发生事件的文档元素。与DOM Event对象的target属性兼容

    button

    1表示左键,2表示右键,4表示中间键

    clientX,clientY

    同DOM的MouseEvent对象的同名属性兼容

    offsetX,offsetY

    相对于源元素的位置。

    altKey,ctrlKey,

    shitfKey

    同DOM

    keyCode

    得到Keydown,keyup事件的键代码的Unicode

    fromElement,

    toElement

    fromElement声明mouseover事件中鼠标移动过的文档元素。

    toElement声明mouseout事件中鼠标移到文档元素。它们等价于2级DOM中的MouseEvent对象的relatedTarget属性。

    cancelBubble

    把它设为true,可以组织当前事件进一步气泡到包容层次的元素。

    returnValue

    可以组织浏览器执行与事件相关的默认动作。

    FireFox的事件总结:

    由于FireFox支持DOM2的事件模型,而且我们也可以使用IE定义事件的方法。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

    <title>Untitled Document</title>

    </head>

    <script type="text/javascript">

    </script>

    <body>

    <input name="Hello" type="button" value="Hello" onclick="Show(this)" />

    <div id="mydiv">mouseDown me</div>

    <script type="text/javascript">

    var mydiv = document.getElementByIdx("mydiv");

    function down()

    {

    alert('down');

    }

    mydiv.onclick = down;

    mydiv.addEventListener("click",function(e){ alert("down2");},false);

    </script>

    </body>

    </html>

    由于FireFox的支持DOM2的事件模型。所以我们可以使用:

    得到FireFox的事件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

    <title>Untitled Document</title>

    </head>

    <body>

    <div id="myDiv">

           <a id="myLink" href="http://home.fego.cn/members/wg/default.aspx">Link Test Event</a>

    </div>

    <script type="text/javascript">

    function TestThis(event)

    {

    alert(this.href);

    alert(event);

    alert(typeof event.preventDefault);

    alert(event.screenX);

    alert(event.screenY);

    alert(event.clientX);

    alert(event.clientY);

    }

    var myLink = document.getElementByIdx("myLink");

    myLink.addEventListener("click",TestThis,true);

    </script>

    </body>

    </html>

    DOM2的事件模型函数

    作用

    addEventListener

    添加事件监听函数。

    removeEventListener

    删除事件监听函数。

    preventDefault

    组织默认事件的发生

    stopPropagation

    可以组织事件从当前正在处理它的节点传播

    createEvent

    创建事件

    Event属性

    作用

    type

    发生的事件的类型

    target

    发生事件的节点

    currentTarget

    发生当前在处理的事件的节点

    eventPhase

    指明了当前事件传播过程。

    Event.CAPTURING_PHASE,Event.AT_TARGET,Event.BUBBLING_PHASE

    timestamp

    一个Date对象,声明了事件何时发生

    bubbles

    一个布尔值,是否在文档树中气泡

    cancelable

    一个布尔值,是否能用preventDefault

    作用的对象类型DOMFocusIn,DOMFocusOut和DOMActivate。

    UIEvent属性

    作用

    view

    发生事件的Window对象

    detail

    一个数字,对于click事件,mousedown,mouseup的事件。1代表点击一次,2代表双击,3代表点击三次。

    对于DOMActivate事件,这个字段的值为1,表示正常激活,2表示超级激活,例如双击鼠标或同时按下Shift和Enter键。

    MouseEvent属性

    作用

    button

    0表示左键,1表示中间键,2表示右键。

    altKey,ctrlKey,metaKey

    ,shitKey

    是否Alt键,Ctrl键,Meta键,Shift键。

    clientX,clientY

    声明鼠标指针相对客户区或浏览器窗口的X坐标和Y坐标。

    screenX,screenY

    声明鼠标指针相对于用户显示器的左上角X坐标和Y坐标。

    relateTarget

    对于mouseover事件,它是鼠标移动到目标上时所离开的那个节点。对于mouseout事件,他是离开目标时,鼠标进入节点。

    事件传播三个阶段:1,捕捉阶段,事件从Document对象沿着文档树向下传播给目标节点。

    2,目标节点触发阶段:在目标上的适合的事件处理程序将运行。3,气泡阶段,在这个阶段,事件将从目标元素向上传播或者气泡回Document对象的文档层次。

  • 相关阅读:
    Iterator与 Enumeration
    多态性理解
    django---路由层
    django常用模块汇总
    django初识
    python常见模块
    python PEP8规范
    logging模块
    mysql一些了解的名词
    python 链接 mysql数据库
  • 原文地址:https://www.cnblogs.com/netcorner/p/2912249.html
Copyright © 2011-2022 走看看