IE下调用dom.focus,body会滚动跳转到dom所在位置,FF浏览器不会有跳转的行为


如题:这个跳转的行为在IE下可以阻止吗?或者能让bordy不滚动吗?(scroll='no'等样式设置了也不管用)

   
  <html>
  
<head>
<title>demo</title>
<script type="text/javascript">
function test() {
document.getElementById('div1').focus();
//document.body.scrollLeft = 0;
//document.body.scrollTop = 0;
}
</script>
</head>
<body style='overflow:hidden' scroll='no'><!-- scroll='no' overflow:hidden onload="test()"-->
<div id="div0" style="width:1400px;height:700px;background:lightblue;position:absolute;" onclick='test()'>
IE下点我会跳转到下面
</div>
<div id="div1" style="top:1500px;width:1500px;height:300px;background:#DDDDDD;position:absolute; ">
</div>
</body>
</html>

类似的滚动现象:访问http://web.qq.com/,然后打开豆瓣FM,将该窗口拖至屏幕右下角,然后按tab键

webQQ窗口拖出边界,按tab键前
按tab键前的图片
按tab键前:document.getElementById('desktop').scrollTop 值为0

按tab键后:document.getElementById('desktop').scrollTop 值为界面垂直偏移量,如200

前端技术 JavaScript

Cooloo 12 years, 4 months ago

不要用focus了,你是想跳转过去么?直接用锚点跳转:
<div name="test"></div>
location.hash="test";

渚熏不是基老 answered 12 years, 4 months ago

Your Answer