iframe监听鼠标点击事件

需要实现的页面逻辑是:

1. 点击父窗体中按钮,显示侧边栏;

2. 点击页面其他区域(iframe)可以隐藏侧边栏

先构造页面文档结构:

<html>

<body>

      <aside id="sidebar">

              <%--这是需要隐藏的侧边栏--%>

     </aside>

    <button>  <%--点击按钮显示侧边栏--%> </button>

    <iframe  id="my-iframe">

      <%--获取此区域的点击事件--%>

   </oframe>

</body>

</html>

因为相对于父窗体,iframe中加载的是一个相对独立的document文档,如果直接在父窗体中使用iframe.onlick监听该区域的点击事件,则不会返回任何结果。

首先我们需要获取iframe所属的document对象:

document.getElementById('my-iframe').contentDocument

随后对这个document对象注册事件处理程序,监听响应鼠标点击事件:

document.getElementById('my-iframe').contentDocument.onclick =function(){varsidebar =        document.getElementById('sidebar');if(sidebar.style.display =='block')  sidebar.style.display ='none';

};

但是这样做还不能满足要求,因为iframe中内容会单独加载,如果我们在它的DOM解析完成之前就去获取document对象并绑定事件监听程序,将不会有任何效果。

所以我们需要先监听iframe页面加载完成事件,在处理程序中获取文档对象:

variframe = document.getElementById('my-iframe');

      iframe.onload =function(){iframe.contentDocument.onclick =function(){varsidebar =      document.getElementById('sidebar');if(sidebar.style.display =='block')  sidebar.style.display ='none';

    };

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放...
    孤魂草阅读 997评论 0 0
  • 我们首先要明白,我们给页面添加效果用到的js到底是什么?js其实包含三部分:dom 文档对象模型 bom 浏览...
    一直以来都很好阅读 863评论 0 0
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 8,086评论 2 17
  • 坐在伴着北京儿化音家常的混响声的星巴克里,我合上电脑捧着手机,这个场景写写爱情也是别有滋味。 小孩儿时期,...
    潜水女王阅读 221评论 0 0
  • 格拉丹冬L7阅读 313评论 1 2

友情链接更多精彩内容