IE7中的window.location.hash问题

时间:2009-06-01 13:39:49

标签: javascript internet-explorer internet-explorer-7

我们有一个javascript函数,可以使用锚点将页面“移动”到某个位置。这个函数就是window.location.href = "#" + hashName。这适用于FF,但不适用于IE。我在Windows XP下使用IE7测试了这段代码。 我尝试了using window.location.hrefwindow.location.hashwindow.location.replace以及所有这些方法,但使用了document个对象。 有谁知道如何处理这个问题?

4 个答案:

答案 0 :(得分:6)

IE和大多数其他浏览器将使用anchor.focus()滚动到锚点,或者使用带有element.scrollIntoView(true)的id滚动到任何元素

答案 1 :(得分:4)

我在Vista下的IE7中测试了这个问题,也许这个问题只存在于XP下的IE7中?因为在IE7,Chrome和Firefox中这对我来说很好用:

 window.location.hash = hashName;

如果这确实不起作用,那么我们可以像Kennebec建议的那样使用scrollIntoView。

 function scrollToAnchor(anchorName){
   //set the hash so people can bookmark
   window.location.hash = anchorName;
   //scroll the anchor into view
   document.getElementsByName(anchorName)[0].scrollIntoView(true);
 }

像这样使用:

 <script type='text/javascript'>scrollIToAnchor('foo');</script>
 <a name='foo'></a>
 <p>I will be scrolled into view</p>

答案 2 :(得分:2)

您是否尝试过更改location.hash

window.location.hash = "#" + hashName;

答案 3 :(得分:0)