在以编程方式加载的DIV(来自iframe)中滚动到锚点

时间:2010-01-01 21:51:17

标签: php javascript

我有一个名为results.php的页面,它有一个隐藏的iframe和一个DIV容器。加载页面时,一些代码在隐藏的iframe中运行,完成后,将结果加载到结果页面的CONTENT DIV中,生成一个滚动条到results.php

所有这一切都很好,但是当我在DIV中生成的代码中有锚点(并最终由results.php显示)时,它们不起作用。我尝试过location.hash,scrollto和其他人,但都没有工作。如果我显示页面源代码,我没有看到任何内容(因为它们是在iframe中创建的,然后加载到RESULTS DIV中),这可能就是为什么location.hash等不起作用的原因。此外,getElementById没有看到任何锚点,我猜是因为同样的原因。

任何想法如何让这个工作?

谢谢!

2 个答案:

答案 0 :(得分:0)

加载到IFRAME的页面与包含DIV的页面具有不同的上下文。如果您尝试从内部IFRAME访问外部内容,则必须通过扭曲来从嵌套文档中获取父文档。这取决于浏览器。

答案 1 :(得分:0)

假设你的iframe有id'结果',而你的主人有id(不是名字)'my_anchor',这应该有效:

var iframe_doc = document.getElementById('results').contentWindow.document;
var anchor = iframe_doc.getElementById('my_anchor');
anchor.scrollIntoView();