gpt4 book ai didi

javascript - 获取 IFRAME 相对于窗口的位置

转载 作者:行者123 更新时间:2023-12-05 01:11:57 24 4
gpt4 key购买 nike

我在 iframe 中运行了 javascript 代码,该 iframe 由与父窗口不同的域提供。出于安全考虑(跨域),我无法轻易检测到框架在窗口内的位置。

但是,我发现如果我将事件附加到框架中的 window.mousemove,我可以获得窗口的 ScreenX/Y 和事件的 ScreenX/Y,这让我很好地了解浏览器窗口上层的偏移量左 Angular 对我来说足够近了 - 我只想检测是否以及有多少框架在 View 中。

所以我想我可以在 iframe 中实用地触发 window.mousemove(),但是 event.ScreenX/Y 不会被填充。

所以我的问题是:

1) 当框架位于不同的域时,如何从窗口获取 iframe 的绝对偏移量2) 或者 - 同样好 - 我如何实用地触发填充了 ScreenX/Y 的事件?

最佳答案

虽然我不确定这是否正是您所要求的,但类似的东西对我有用。您可能还需要考虑两件事:

  1. 与浏览器的滚动偏移量,但我认为这个值可供您使用。
  2. 浏览器 header 差异,我当前获取的值不会扣除浏览器 header 使用的高度,也不会扣除左侧的任何填充。不过,有几种方法可以做到这一点。

    a) 创建一个浏览器列表并自动扣除对 header 可能有多大的最佳猜测。b) 使用 innerHeight 做一些数学运算,但您仍然需要弄清楚 Windows 状态栏(或 unix 或 max)的大小与浏览器标题大小的关系。

无论如何,这是我使用的代码:

<html>
<head>
<title>iframe title</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
$(document).mousemove(function(e){
var x = e.screenX - e.pageX - window.screenX;
var y = e.screenY - e.pageY - window.screenY;
$('#status').html(x +', ' + y );
});
})
</script>
</head>
<body id="doc">
<h2 id="status">0, 0</h2>
</body>
</html>

关于javascript - 获取 IFRAME 相对于窗口的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12042427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com