Javascript 如何找到iframe中某个点与iframe文档顶部之间的高度
我在另一个域的父窗口中加载了一个iframe,我想找到iframe中任意点与iframe文档高度之间的像素高度差。我所说的iframe文档高度,不仅仅是指iframe的顶部,而是指在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
我希望能够从父窗口的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