Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找到iframe中某个点与iframe文档顶部之间的高度_Javascript_Jquery_Iframe - Fatal编程技术网

Javascript 如何找到iframe中某个点与iframe文档顶部之间的高度

Javascript 如何找到iframe中某个点与iframe文档顶部之间的高度,javascript,jquery,iframe,Javascript,Jquery,Iframe,我在另一个域的父窗口中加载了一个iframe,我想找到iframe中任意点与iframe文档高度之间的像素高度差。我所说的iframe文档高度,不仅仅是指iframe的顶部,而是指在iframe内部加载的文档的顶部(如果在iframe内部向下滚动,则会有所不同) 我希望能够从父窗口的html中的脚本中执行此操作。使用$(“iframe”).offset().top查找iframe文档的顶部由于上述原因不起作用(我不想要iframe的顶部)。有没有一种方法可以获取加载在iframe内部的docum

我在另一个域的父窗口中加载了一个iframe,我想找到iframe中任意点与iframe文档高度之间的像素高度差。我所说的iframe文档高度,不仅仅是指iframe的顶部,而是指在iframe内部加载的文档的顶部(如果在iframe内部向下滚动,则会有所不同)


我希望能够从父窗口的html中的脚本中执行此操作。使用
$(“iframe”).offset().top
查找iframe文档的顶部由于上述原因不起作用(我不想要iframe的顶部)。有没有一种方法可以获取加载在iframe内部的document DOM元素的引用,这对我有帮助?

如果iframe位于不同的域上,您不能这样做。需要访问
contentDocument
才能获得
scrollTop
位置。显然,知道文档的滚动位置并不会损害用户的安全性,但在另一个域上访问
contentDocument
是绝对不可能的

现在,如果您的域中有一个PHP文件,它代理了来自另一个域的页面,那就另当别论了。如果您只访问一个没有链接或表单的页面,那么这种方法将很容易实现:

<?php echo file_get_contents("http://example.com/"); ?>

如果有链接和/或表单,你的生活会困难得多。首先,您必须重写所有URL以通过代理脚本,然后您必须使用套接字函数或cURL将表单数据发布到另一台服务器。。。如果您只有一个页面,那么就容易多了。

您可以控制其他域吗?只有将两个窗口配置为通过消息进行通信,才能在不同域上的不同窗口之间进行通信。
<iframe src="myproxy.php" id="iframe" />
document.getElementById('iframe').contentDocument.documentElement.scrollTop
// contentDocument.body.scrollTop in some browsers - get both and add them together