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