当页面中有iframe控件且文本框获得焦点时,如何保持页面的滚动位置?

3
在我的网页中,我使用了一个iframe控件,并且它在更新面板中,每4秒钟刷新一次,并且焦点设置在iframe中的一个文本框上。我想要保持页面的滚动位置,但是每4秒钟后滚动位置都会跳转到焦点文本框。
我已经使用了“MAintainScrollpositononPostBack”选项和以下javascript代码。
function scroll()
      {
      var obj = document.getElementById("Form1"); 
      obj.scrollTop = obj.scrollHeight;
      }

请问有人可以解释如何解决这个问题吗?

先谢谢了。


你尝试过什么吗?请先展示你的努力。请阅读[FAQ]和[ask]。 - Soner Gönül
您是指容器页面的滚动位置还是iframe的滚动位置? - LiverpoolsNumber9
容器页面(网页) - Lax_me
2个回答

0
最简单的方法是在更新文本框时不设置焦点,这意味着滚动位置不会改变,除非你使用的某些代码仍然将焦点设置到屏幕外的元素。
如果必须在更新文本框时设置焦点,则保存滚动位置并恢复它。
var doc = document.documentElement, body = document.body;
var left = (doc && doc.scrollLeft || body && body.scrollLeft || 0);
var top = (doc && doc.scrollTop  || body && body.scrollTop  || 0);

//update your text box and set focus here

window.scrollTo(left, top);

-1

尝试使用这个被接受的答案,但它却是一个失效的链接。 - Jason R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接