一个关于javascript的事件响应问题-问答-阿里云开发者社区-阿里云

开发者社区> a123456678> 正文

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

2016-07-15 10:52:05 1794 1

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

现在的问题按以下所写的代码只能响应链接点击的事件,而无法响应页面其它地方的事件。请指教。我另一段代码不是在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)
{
  if (document.getElementById('div_tip'))
     document.getElementById('div_tip').parentNode.removeChild(document.getElementById('div_tip'));
  else
  {
     div=document.createElement("div");
     div.id="div_tip";
     div.style.cssText="position:absolute;background:#fff;border:1px solid #444;width:100px;height:50px;z-index:3px;"
     div.style.top=ev.pageY;
     div.style.left=ev.pageX;
     document.body.appendChild(div);
  }
}
//给网页增加点击事件
function mesgdiv(a,ev)
{
addEvent(window,"click",sendmessage(a,ev));
}
 
//以下为body中使用
 
<body>
<a onclick="mesgdiv(this,event)" href="#">showbox</a>
</body>
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:56:47
    /*
     *函数功能:动态添加事件
     *参数说明:依次-事件源元素对象,事件类型(如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>
    0 0
相关问答

11

回答

在阿里云上安装和运行Node.js全功略

ycwong 2013-09-18 15:17:30 64030浏览量 回答数 11

19

回答

【分享】如何提高网站的打开速度?

enj0y 2012-11-17 14:35:22 56731浏览量 回答数 19

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157089浏览量 回答数 145

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 92899浏览量 回答数 28

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 146793浏览量 回答数 22

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 145633浏览量 回答数 31

23

回答

【云服务器分享】网站访问速度快才是硬道理

dreamdoo 2012-10-15 10:15:02 85192浏览量 回答数 23

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302610浏览量 回答数 249

13

回答

【云服务器分享】如何节省网站流量

dreamdoo 2012-10-15 10:36:09 80126浏览量 回答数 13

14

回答

对象存储oss【问答合集】

我是管理员 2018-08-03 14:54:02 67376浏览量 回答数 14
+关注
0
文章
14879
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载