gpt4 book ai didi

javascript - 如何从 iframe 中获取 iframe 的 X 和 Y 位置?

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:08 26 4
gpt4 key购买 nike

我在文档上有一个 iframe。使用 javascript,我可以获得 iframe 的宽度和高度以及文档的宽度和高度。我现在需要从 iframe 中获取文档中 iframe 的 x,y 位置。

代码是这样的:

<html>
<iframe>
var documentWidth = parent.window.innerWidth;
var documentHeight = parent.window.innerHeight;
var iframeWidth = window.innerWidth;
var iframeHeight = window.innerHeight;
var iframeX = ????
</iframe>
<html>

我已经尝试了 window.offsetTop/Left、parent.window.offsetTop/Left、window.clientTop 等我能找到的任何其他内容,但总是出现“未定义”。

两者都在同一台服务器上,所以我认为我没有跨域问题。

有什么想法吗?

顺便说一句,我不能为此使用 JQuery。仅限 JS。

这里有更多细节:

<html>
<body>
<div>
<iframe name="iframe/123/Test">
<html>
<body>
<script src="same domain"></script>
</body>
</html>
</iframe>
</div>
</body>
</html>

到目前为止,脚本看起来像这样:

// JavaScript Document
var documentWidth = parent.window.innerWidth;
var documentHeight = parent.window.innerHeight;
var iframeWidth = window.innerWidth;
var iframeHeight = window.innerHeight;
var iframeName = window.name;
var iframeX = window.parent.document.getElementsByName(iframeName).offsetLeft;

//Var Dumps
document.write("Document Width: "+documentWidth+"<br>");
document.write("Document Height: "+documentHeight+"<br>");
document.write("Iframe Width: "+iframeWidth+"<br>");
document.write("Iframe Height: "+iframeHeight+"<br>");
document.write("Iframe X: "+iframeX+"<br>");

我在 iframe 的页面上得到以下结果:

Document Width: 1566
Document Height: 652
Iframe Width: 300
Iframe Height: 250
Iframe X: undefined

最佳答案

由于两个文件都在同一台服务器上,所以你没有跨域问题,你可以尝试以下解决方案:

主 HTML

<html>
<body>
<iframe src='iframe.html' name='iframe_name' id='iframe_id'></iframe>
</body>
</html>

iframe 代码 [iframe.html]:

<html>
<body>
<script type="text/javascript">
var documentWidth = parent.window.innerWidth;
var documentHeight = parent.window.innerHeight;
var iframeWidth = window.innerWidth;
var iframeHeight = window.innerHeight;
// Get Left Position
var iframeX = window.parent.document.getElementById('iframe_id').offsetLeft;
// Get Top Position
var iframeY = window.parent.document.getElementById('iframe_id').offsetTop;
</script>
</body>
</html>

关于javascript - 如何从 iframe 中获取 iframe 的 X 和 Y 位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468449/

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