【发布时间】:2013-05-02 03:41:38
【问题描述】:
我有一个 html 页面,其中包含一个 iframe 加载一些任意页面。
<iframe id="siteframe" style="width: 400px; height: 400px;" src="http://www.cnn.com"></iframe>
我希望能够在 javascript/jquery 中的 iframe 中获取页面的滚动位置inside。当谈到 html/js 的东西时,我仍然有点不满意,但我尝试了一些使用 scrollTop 和 scrollLeft 的不同变体,但没有成功。这是一个不起作用的:
write($("#siteframe").contents().scrollLeft() + ", " + $("#siteframe").contents().scrollTop());
这个从不写任何东西(write 是一种只附加到屏幕上的文本的方法)。
如果我像这样删除.contents():
write($("#siteframe").scrollLeft() + ", " + $("#siteframe").scrollTop());
它至少会在屏幕上写入一些内容,但无论 iframe 中的实际滚动位置在哪里,它始终为 0,0。
在 javascript 中获取 iframe 中内容的 x,y 位置以便我的外部页面(包含 iframe)可以使用它的正确方法是什么?
【问题讨论】:
-
iframe 很棘手,因为出于安全原因,它们会限制您对其中正在发生的事情的访问。我认为您无法直接获取该信息。另一种选择可能是使 iframe 更大,并将 iframe 放在滚动 div 中,因此用户滚动 div 而不是 iframe 本身。我现在没有时间确保这能正常工作,祝你好运!
-
如果您只想隐藏 iframe 的一部分 - 考虑使用
overflow:hidden;样式元素包装 iframe 并将负 CSStop添加到 iframetop: -20px; /*or some other value*/,这将隐藏 iframe 的一部分根本不想展示...
标签: javascript jquery html iframe scroll