我需要js实现一个功能,在iframe的页面中。,点击链接后弹出警告,然后给整个页面载入点击事件,再点击页面任何地方都弹出警告。以下代友要在iframe的页面中实现。。请问为什么代码有问题!/*
 *函数功能:动态添加事件
 *参数说明:依次-事件源元素对象,事件类型(如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...但我测试后发现主要是点击事件的响应问题,即代码只能响应链接点击的事件,而无法响应页面其它地方的事件。所以我简化为以上的代码。

解决方案 »

  1.   

    <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(a,ev));
    }
    </script>
    </head><body>
    <a onclick="addEvent(window,'click',sendmessage)" href="#">showbox</a>
    </body>
    </html>
    这样试试
      

  2.   

    <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>
    或者这样也可以
      

  3.   

    确实是传参的问题。addEventListener的参数原来不能这样传的。