读书人

一个关于javascript的事件响应有关问题

发布时间: 2012-08-25 10:06:20 作者: rapoo

一个关于javascript的事件响应问题
我需要js实现一个功能,在iframe的页面中。,点击链接后弹出警告,然后给整个页面载入点击事件,再点击页面任何地方都弹出警告。以下代友要在iframe的页面中实现。。请问为什么代码有问题!

JScript code
/* *函数功能:动态添加事件 *参数说明:依次-事件源元素对象,事件类型(如click不带on),事件响应函数) *调用举例:addEvent(window, "load", init); */function addEvent(elm, evType, fn){         if (elm.addEventListener){                 elm.addEventListener(evType, fn, false);                 return true;         } else if (elm.attachEvent){                 var r = elm.attachEvent("on" + evType, fn);                 return r;         } else {                 return false         }}//响应点击事件,显示或是关闭窗口function sendmessage(a,ev){alert("this a test.");}//给网页增加点击事件function mesgdiv(a,ev){addEvent(window,"click",sendmessage(a,ev));}//以下为body中使用<body><a onclick="mesgdiv(this,event)" href="#">showbox</a></body>


开始的问题是我需要使用js实现一个功能,在iframe的页面中。点击链接后弹出div,再点击页面中的任何一个地方移除div...

但我测试后发现主要是点击事件的响应问题,即代码只能响应链接点击的事件,而无法响应页面其它地方的事件。所以我简化为以上的代码。

[解决办法]
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
function addEvent(elm, evType, fn)
{
if (elm.addEventListener){
elm.addEventListener(evType, fn, false);
return true;
} else if (elm.attachEvent){
var r = elm.attachEvent("on" + evType, fn);
return r;
} else {
return false
}
}
function sendmessage(a,ev)
{
alert("this a test.");
}
function mesgdiv(a,ev)
{
addEvent(window,"click",sendmessage);
}
</script>
</head>

<body>
<a onclick="mesgdiv(this,event)" href="#">showbox</a>
</body>
</html>
或者这样也可以

读书人网 >JavaScript

热点推荐