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

JavaScript 获取事件对象的一个注意点【问题】


JavaScript 获取事件对象的一个注意点
2009-7-24 上午
- JS/Ajax/AS/Flex
- event
- javascript
  
平时我们获取事件对象一般写法如下:
function
getEvent
(
event
)

{
   
return

event

||
window
.
event
 
// IE:window.event
}
如果没有参数,也可写成(非IE :事件对象会自动传递给对应的事件处理函数,且为第一个参数):
function
getEvent
()

{
   
return
arguments
[
0
]

||
window
.
event

// IE:window.event
}
这样的写法在除 Firefox(测试版本:3.0.12,下同) 外的浏览器上运行都不会有问题,但 Firefox
为什么例外呢?让我们这样一种情形:
<button
id
=
"btn"

onclick
=
"
foo
()
"
>
按钮
</button>
<script>
function
foo
(){
   
var
e
=
 getEvent
();
   alert
(
e
);
}
</script>
运行结果在 Firefox 中是 undefined
,为什么呢?
在 Firefox 中调用其实是这样的,先调用执行的是:
function
onclick
(
event
)

{
    foo
();
}
然后调用执行的是:
function
foo
(){
   
var
e
=
 getEvent
();
   alert
(
e
);
}
会发现在 Firefox 下 onclick
=
"foo()"
中的 foo
()
无法自动传入事件对象参数,而默认传递给了系统生成的
onclick 函数,那本例我们可以通过 getEvent
.
caller
.
caller
.
arguments
[
0
]
获得事件对象。
因此,我们的 getEvent 可以优化成(参照 yui_2.7.0b 中的 event/event-debug.js 中 getEvent
方法):
function
getEvent
(
event
)

{
   
var
ev
=

event

||
window
.
event
;
   
if

(!
ev
)

{
       
var
c
=

this
.
getEvent
.
caller
;
       
while

(
c
)

{
            ev
=
c
.
arguments
[
0
];
           
if

(
ev
&&

(
Event

==
ev
.
constructor

||

MouseEvent
 
==
ev
.


相关文档:

通过javascript获得url参数

页面提交数据一般有两种方法:get,post。post就是所谓的form提交,使用视图;get是通过url提交。
Get方法一般用后台代码(如asp,asp.net)获得参数,代码很简单:Request.QueryString["id"];即可获取。 
有些时候需要直接在前台获取url参数,要用到javascript,js没有直接获取url参数的方法,那么,我们如何通过js ......

JavaScript XMLHttpRequest的用处

      如果想从网页提交参数到服务器,第一个想到的就是Http的Form标签。它将用户在客户端网页填写的数据通过HTTP Post,提交到服务端。这些提交的数据被放在HTTP消息的body里面,这样,用户提交的数据理论上是没有长度限制的。如果服务端用的是J2EE,HttpServletRequest可以非常轻松得取到所有参 ......

Javascript——闭包


     
最近这段时间一直在搞前端JavaScript,以前总觉得JS没什么搞头,经过这一段的应用,才发现Js里面的东西真的很深很深的,不然为什么各大门户网站都招一批JS工程师呢。
       闲话不说,现在看看JavaScript
里的闭包

要成为高级 JavaScript 程序员 ......

JavaScript操作服务器控件之Gridview控件

JavaScript操作服务器控件之Gridview控件
1.JavaScript脚本如下:
<script language="javascript" type="text/javascript">
    function gridviewControl()
    {
        //获取GridView的客户端元素
       ......

javascript定时更换表格背景

<html>
<head>
<title>changePage</title>
</head>
<body>
<table id="pic" cellpadding="0" cellspacing="0" border="1" width="200" height="100" bordercolor="red">
<tr>
<td>picture chanage!</td>
</tr>
</table>
< ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号