2

我已成功更改了 IFRAME 位置的哈希值(作为通过 Google Document Viewer 进行外部化导航的一部分),但是我无法弄清楚如何在函数时阻止父级跳到 IFRAME 的顶部被触发。

有人有 JS/jQuery 解决方案吗?我找到了这个问答(也在下面),但解决方案似乎很脏并且容易出现问题。想法?

var yScroll=document.body.scrollTop;
window.location.hash = id;
document.body.scrollTop=yScroll;

另外,作为参考,我正在使用的功能是这样的:

function st_go_to_pg( pg ){
    if( pg >= 0) jQuery('.gde-frame').first()[0].contentWindow.location.hash=':0.page.'+pg;
}
4

1 回答 1

0

由于看起来没有人有比我在最初问题中包含的更好的解决方案,我想我将把它作为答案发布。

在不更改父页面的 y 滚动位置的情况下更改嵌入文档中的页面的结果函数如下:

function go_to_pg( pg ){
    var y=document.body.scrollTop; // save parent y to undo jump to top of IFRAME
    if( pg >= 0) jQuery('.gde-frame').first()[0].contentWindow.location.hash=':0.page.'+pg;
    document.body.scrollTop=y; // reset y
}
于 2013-01-28T19:31:13.510 回答