我有兴趣链接或嵌入外部页面,滚动到特定点。这是可能的,还是跨浏览器证券会阻止它呢?
我考虑过的一个解决方法是在div中创建iframe,给iframe一个负余量然后溢出:隐藏;容器div。
感谢。
答案 0 :(得分:1)
可能的解决方案是使用JavaScript滚动页面。但是,如果您要嵌入的页面位于其他域中,则如果它位于iframe中,则无法使用JavaScript访问其内容(由于same origin policy)。但是,如果它与主机页面位于同一个域中,您应该能够使用JavaScript访问它,然后使用window.scrollTo(x,y)
方法或类似方法滚动(请参阅this page on MDN)。
此外,如果您要嵌入的页面在您要滚动到的位置具有命名锚点(<a name="blah">
)或具有特定ID(<div id="blah">
)的块级元素,则可以链接到它或使用http://example.com/page#blah之类的URL嵌入它,它会自动滚动到等等。这不属于同源策略,因此您可以执行类似<iframe src="http://example.com/page#blah"></iframe>
的操作,框架将自动滚动到 blah ,即使它与主机不在同一个域中
您提到的“带有负边距的iframe”解决方案可以正常工作,但这可能很难实现,并且可能会导致问题,尤其是如果您想要完全跨浏览器兼容性。