我对链接或嵌入外部页面感兴趣,滚动到特定点。这是可能的,还是跨浏览器的安全性会阻止它?
我考虑过的一种解决方法是在 div 中创建 iframe,为 iframe 提供负边距,然后溢出:隐藏;容器分区。
谢谢。
最佳答案
一个可能的解决方案是使用 JavaScript 来滚动页面。但是,如果您要嵌入的页面位于不同的域中,如果它位于 iframe 中(由于 same origin policy),您将无法使用 JavaScript 访问其内容。但是,如果它与主机页面位于同一域中,您应该能够使用 JavaScript 访问它,然后使用 window.scrollTo(x,y)
滚动。方法或类似方法(参见 this page on MDN )。
此外,如果您要嵌入的页面在您要滚动到的位置有一个命名 anchor ( <a name="blah">
) 或一个具有特定 ID ( <div id="blah">
) 的 block 级元素,您可以链接到它或使用 http://example.com/page#blah 等 URL 嵌入它它会自动滚动到 blah。这不在同源策略下,所以你可以做类似 <iframe src="http://example.com/page#blah"></iframe>
的事情框架将自动滚动到 blah,即使它与主机不在同一个域中也是如此。
您提到的“带负边距的 iframe”解决方案可能有效,但这可能难以实现并且可能会导致问题,特别是如果您想要完全的跨浏览器兼容性。
关于javascript - 外部页面 - 给它 JS 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4466056/