首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 一句代码 [已结贴,结贴人:wishY]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 15:29:42 楼主
    我有句代码在ff下好象不行,请大虾们指教应该怎么写?
    JScript code
    var ele = (event.srcElement ? event.srcElement : event.target); alert(ele);

    在ie 下能打出 object 但是在ff 里没反映??
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 15:42:031楼 得分:0
    没人答...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 15:49:372楼 得分:0
    没人在  还是都不会啊...汗
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 16:02:153楼 得分:0
    var evt=arguments[0] ¦ ¦ window.event
    var ele=evt.srcElement ¦ ¦ evt.target
    alert(ele);

    在ie里都可以,但是在ff里按扭可以,为什么checkbox 不行。
    等待...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 16:12:584楼 得分:5
    obj=event.srcElement?event.srcElement:event.target;
    你写的这个就是兼容的代码了。

    可能是对于FF,event对象必须通过参数传递,而不能直接引用。
    而IE,可以不带参数直接在函数中使用event对象。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 16:28:405楼 得分:5
    FF 下是没有event的,只有真正发生了才有.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 16:51:556楼 得分:0
    HTML code
    <!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" xml:lang="en" lang="en"> <head><title>ie&ff</title> <script type="text/javascript"> window.onload=function(){ document.getElementById("btn3").onclick=aa document.getElementById("ck1").onclick=aa } function aa(){ var evt=arguments[0] || window.event var element=evt.srcElement || evt.target alert(element.id) } </script> </head> <body> <form> <button id="btn3" >按钮</button> <input id="ck1" type="checkbox" /> <button id="btn4" onclick="aa()">按扭</button> </form> </body> </html>

    ok了,但是不明白这段代码有什么区别??大虾解释下....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 16:55:227楼 得分:0
    arguments[0]  为执行时将事件作为第一个参数传递.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 17:05:598楼 得分:0
    不明白的地方 主要是:
      btn3 和 btn4 的调用方式不同,然后在ff里,btn3 是ok的,但是btn4却不行。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • muxrwc
    • 等级:
    发表于:2008-05-14 17:50:469楼 得分:10
    嗯,因为

    document.getElementById("btn3").onclick=aa

    这个是设置了
    当触发onclick事件时触发aa函数...
    就是说
    把aa交给了onclick事件.
    当onclick触发时,系统将触发aa.在FF中如果aa没有参数的话,还会给aa传入参数到arguments[0],就是event对象..而IE event对象则放到了全局变量window.event中...

    如aa有设置要传入的参数的话,则通过默认函数执行aa,把event传递给默认函数的arguments[0];

    btn3很显然没有设置aa要传入的参数

    而btn4则设置了它不传参数即aa()
    btn4要获取到event对象的方法,是通过aa函数找到执行它的函数,然后获取那个函数的arguments[0]

    简单的表示是
    arguments.callee.caller.arguments[0]
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved