【发布时间】:2016-03-31 05:18:18
【问题描述】:
我已经阅读并尝试了许多向下滚动 iframe 的解决方案,但没有一个对我有用。这是 javascript 函数,是由 jquery.js 完成的计时器回调。当输入文件更改时,我重新生成了页面 (src="pp_ContactRangesPanel.php?sc=terra&path=/var/www/html/java_clocks/terra/terra_aos_times&filter=N;#target") 并通过 reload( )。然后我尝试滚动到 iframe 中的 name="target" 行,但它永远不会移动。输入网页顶部有一个“跳转到目标行”按钮,它可以跳转到目标行,所以我知道重新加载后标签在那里。这是重新加载页面并应滚动到目标行的 javascript 部分。
// new mtime vs. last mtime test
if ($aPath[$currentFile][2] != $aPath[$currentFile][3]) {
$aPath[$currentFile][3] = $aPath[$currentFile][2];
// read in file again and re-populate mission table
var obj = document.getElementById($aPath[$currentFile][0]);
obj.contentWindow.location.reload();
var doc = (obj.contentDocument)? obj.contentDocument: obj.contentWindow.document;
var anchors = doc.getElementsByName('target');
// got target line?
if (0 < anchors.length)
{
doc.scrollTo(0, anchors[0].offsetTop);
}
}
有些过头了:
- 创建 3 行 iframe 时,iframe 高度设置为 257。
- 此 iframe 位于第二行。
- 返回的 anchors[0].offsetTop 是 834,这是有道理的,因为生成的 src 网页中有 80 行。
- 对于我的测试,我滚动到页面顶部或底部,然后再触摸输入文件以开始重新加载。
那么有什么想法为什么不将脚本写入目标行?
【问题讨论】:
-
您是否尝试滚动
html元素而不是document?
标签: javascript iframe scroll