我需要能够按需在 iframe 中加载特定页面,所以我使用了一个简单的包装器:
function updateFrame(url) {
frames[0].location = url;
}
然后我被要求将页面加载到一个特定的点,这很重要,因为这些页面不在我的控制范围内,而且并不总是有<a name>
可以依赖的锚点。因此,一些研究表明 ID 可以用作锚点。
也就是说,您可以滚动到<div id = "somewhere-down-the-line">
:
updateFrame("http://host/page#somewhere-down-the-line");
除了此调用还会向上滚动整个视口,以便将上面<div>
的内容移到顶部,并且其上方父页面中的所有内容都滚动到视图之外。
如何修改updateFrame(url)
以使其在其中滚动页面<iframe>
但保持页面的其余部分不变?
这个 hack 在 Firefox 20.0.1/Windows 上对我有用。本质上,我先加载页面,然后跳转到目标:
function updateFrame(url) {
if (url.indexOf('#') > -1) {
mainPage = url.split('#')[0];
frames[0].location = mainPage;
}
frames[0].location = url;
}
我也希望能够在其他浏览器中使用它。我一直试图让它在 Chrome 中工作。也许我什至会尝试 Internet Explorer ...