我成功更改了 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;
}
最佳答案
由于看起来没有人有比我在最初问题中包含的更好的解决方案,因此我想我会将其作为答案发布。
在不更改父页面的 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
}
关于javascript - 如何更改 IFRAME location.hash 值而不让父级跳转到 IFRAME?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14533361/