如何更改IFRAME location.hash值而不将父级跳转到IFRAME?

时间:2013-01-26 02:49:56

标签: javascript html iframe

我已成功更改了IFRAME(as a part of externalizing navigation through Google Document Viewer)位置的哈希值,但我无法弄清楚如何阻止父级跳转到IFRAME的顶部该功能被触发。

有没有人有JS / jQuery解决方案?我发现this Q&A(也在下面),但解决方案似乎很脏,容易出问题。想法?

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;
}

1 个答案:

答案 0 :(得分: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
}