多级iframe中,获取元素相对于浏览器左上角的坐标(非当前frame)
搜索了好多文章,都不是自己想要的,所以在此贴下自己的解决方案,做个笔记。
1、常规需求:获取当前元素距离左边、顶部的距离
1 var x = $(div).offset().left;
2 var y = $(div).offset().top;
2、当元素处于iframe中时候,上面的方法获取的将是相对于iframe的的距离
此时我的做法是判断当前容器是不是iframe,如果是,则递归查找父级容器。累加每级容器计算的值即可
1 function GetPointInScreen(e, x, y) {
2 var point = e.getBoundingClientRect();
3 x += point.left;
4 y += point.top;
5 if (self != top) {
6 return window.parent.GetPointInScreen(window.parent.$("[name='myIframe']")[0], x, y);
7 }
8 return { x: x, y: y };
9 }
e:要获取坐标值的元素
myIframe:我自己的iframe的name值
3、demo
1 <body>
2 <div style="width:100%;height:100px"></div>
3 <iframe src="xxx">
4 <div style="width:100%;height:100px"></div>
5 <div style="width:100%;height:100px" onclick="test(this)"></div>
6 <script>
7 function test(e){
8 var point=GetPointInScreen(e,0,0);
9 console.log(point);
10 }
11 </script>
12 </iframe>
13 </body>
多级iframe中,获取元素相对于浏览器左上角的坐标(非当前frame)的更多相关文章
- Js/Jquery获取iframe中的元素
转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...
- js 获取iframe中的元素
今天要修改编辑器插件中的元素遇到的问题 jquery 在父窗口中获取iframe中的元素 1.Js代码 格式:$("#iframe的ID").contents().find(&qu ...
- 获取iframe中的元素
父窗口中获取iframe中的元素 var ifr = document.getElementById('suggustion').contentWindow.document.body; 在ifram ...
- Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法
在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素 1. 格式:window ...
- 关于如何获取iframe中的元素
今天研究了一下iframe中元素的获取,发现有些地方还是有点坑的. 首先:如果使用纯前端手段,是没有办法获取非同源的iframe中的元素的,后面会提到后端手段 一.同源环境 1.首先在父页面获取ifr ...
- 【学习】如何用jQuery获取iframe中的元素
(我的博客网站中的原文:http://www.xiaoxianworld.com/archives/292,欢迎遇到的小伙伴常来瞅瞅,给点评论和建议,有错误和不足,也请指出.) 说实在的,以前真的很少 ...
- 父窗口中获取iframe中的元素
js 在父窗口中获取iframe中的元素 1. 格式:window.frames["iframe的name值"].document.getElementById("ifr ...
- 在iframe窗体内 获取父级的元素;;在父窗口中获取iframe中的元素
在iframe中获取父窗口的元素 $(‘#父窗口中的元素ID’, parent.document).click(); 在父窗口中获取iframe中的元素 $(“#iframe的ID”).content ...
- js获取iframe中的元素以及在iframe中获取父级的元素(包括iframe中不存在name和id的情况)
第一种情况:iframe中不存在name和id的方法:(通过contentWindow获取) var iframe = document.getElementsByTagName('iframe' ...
随机推荐
- Elasticsearch(3):别名
ES中可以为索引添加别名,一个别名可以指向到多个索引中,同时在添加别名时可以设置筛选条件,指向一个索引的部分数据,实现在关系数据库汇总的视图功能,这就是ES中别名的强大之处.别名是一个非常实用的功 ...
- 《New Horizon College English》 (Third Edition) -长篇阅读(Skmming and Scanning)
<New Horizon College English>(Third Edition) <新视野大学英语>(第三版) 长篇阅读(Skmming and Scanning) 总 ...
- docker的run操作
docker的run到底做了什么操作呢? 它会优先寻找本地的镜像,如果没有就到仓库找,找不到返回错误,查找不到该镜像.能找到就拉这镜像下来,以该镜像为模板生产容器实例运行. 备注:图不是自己画的,截图 ...
- 网络io控制器
网络io控制器 网络io控制器 ZLAN6842,ZLAN6844是8路远程网络IO控制器.含有8路DI.8路DO,8路AI输入.其中DI支持干节点和湿节点,带光耦隔离:DO为继电器输出,具有5A 2 ...
- day17 Pyhton学习 内置函数继续
1. locals 本地作用域/局部作用域 会随着位置的改变而改变 2.globals 全局作用域 永远不变,永远是全局 3.complex:复数 实数(有理数和无理数) 某一个数的平方是-1 ...
- LCA树上倍增求法
1.LCA LCA就是最近公共祖先(Least common ancestor),x,y的LCA记为z=LCA(x,y),满足z是x,y的公共祖先中深度最大的那一个(即离他们最近的那一个)qwq 2. ...
- rabbitmq 延时队列 插件方式实现 每条消息都延时自己时间
上篇文章的延时是加到队列上的 通过死信过时推送 ,缺点就是不能每条消息定义自己的过时时间而且每次有新的过时时间,要新建一个交换机和队列 https://www.cnblogs.com/brady-wa ...
- linux wget指定下载目录和重命名
当我们在使用wget命令下载文件时,通常会需要将文件下载到指定的目录,这时就可以使用 -P 参数来指定目录,如果指定的目录不存在,则会自动创建. 示例: p.p1 { margin: 0; font: ...
- 不同系统执行相同shell脚本,出现Syntax error: "(" unexpected错误解决
例如shell脚本在centos系统中能正常执行,而在ubuntu系统中执行会出现类似Syntax error: "(" unexpected的错误,一般这种是因为sh与bash有 ...
- Aspose.Words实现邮件合并功能和打印
前言 最近公司要做一个B/S架构的web打印系统,主要是可以上传.下载.邮件合并.打印等等,还有就是角色的分配.用户的创建.日志记录等等,跟一般的web系统一样.可能不一样的就是需求:想把excel的 ...