JS如何将滚动条滚动到合适的位置显示指定的对象?

时间:2021-10-11 10:37:49
JS如何将滚动条滚动到合适的位置显示指定的对象?

简单页面把input 对象focus()就可以了. IE&FF都可以. 但是放到另一个不是测试的页面中就不可以. 也没有提示错误. 
有什么其他办法吗?

指定的对象可以是个div. 或input什么的.

7 个解决方案

#1


可能你获取的对象错了,

#2


没有错. document.getElementById("focusInput"); 
继续找原因吧...


<input id="focusInput" name="textfield"  style="width:0px; height:0px; border-width: 0px; " />

#3


知道为什么了, 原因是document.getElementById("focusInput"); 这个发生在文档还没有load完成之前,
把这个放到</body>前就可以了. 

这个方法不适合我 :(

#4


下面代码是我测试的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body onload="javascript: document.getElementById('ss').focus();">
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<input type="text" id='ss' value="ok" />
<script language="javascript">
// 以下是可以的, body中的onload就不可以. 可是下面代码需要动态加载页面的时候生成, 如何使其能执行?
//document.getElementById('ss').focus();
</script>
</body>
</html>

#5


.....对象都还没加载你就使用能正确那才见鬼

#6


那有什么办法呢? 

#7


<script defer="defer" language="javascript"> 

用defer属性就可以了.

#1


可能你获取的对象错了,

#2


没有错. document.getElementById("focusInput"); 
继续找原因吧...


<input id="focusInput" name="textfield"  style="width:0px; height:0px; border-width: 0px; " />

#3


知道为什么了, 原因是document.getElementById("focusInput"); 这个发生在文档还没有load完成之前,
把这个放到</body>前就可以了. 

这个方法不适合我 :(

#4


下面代码是我测试的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body onload="javascript: document.getElementById('ss').focus();">
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<input type="text" id='ss' value="ok" />
<script language="javascript">
// 以下是可以的, body中的onload就不可以. 可是下面代码需要动态加载页面的时候生成, 如何使其能执行?
//document.getElementById('ss').focus();
</script>
</body>
</html>

#5


.....对象都还没加载你就使用能正确那才见鬼

#6


那有什么办法呢? 

#7


<script defer="defer" language="javascript"> 

用defer属性就可以了.