我有一个名为results.php的页面,它有一个隐藏的iframe和一个DIV容器。加载页面时,一些代码在隐藏的iframe中运行,完成后,将结果加载到结果页面的CONTENT DIV中,生成一个滚动条到results.php
所有这一切都很好,但是当我在DIV中生成的代码中有锚点(并最终由results.php显示)时,它们不起作用。我尝试过location.hash,scrollto和其他人,但都没有工作。如果我显示页面源代码,我没有看到任何内容(因为它们是在iframe中创建的,然后加载到RESULTS DIV中),这可能就是为什么location.hash等不起作用的原因。此外,getElementById没有看到任何锚点,我猜是因为同样的原因。
任何想法如何让这个工作?
谢谢!
答案 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();