在这张地图上:
http://web.pacific.edu/documents/marketing/campus-map/version%202/stockton-campus-2.0.htm
我有在顶部的锚,我想点击一个链接时,页面跳转到锚。
我目前使用
window.location = '#top';
它的工作原理如预期FF,Opera和Chrome浏览器,但不是在IE 7。
我试着像window.location.hash和window.location.assign(),也scrollIntoView所有排列(真)和焦点()。
我怎样才能使它在IE浏览器?
编辑 :似乎没有任何工作,这让我觉得它不是语法,但一些关于JS ......这里是click事件处理程序...难道是因为它返回false? 我抓救命稻草。
// Click handler for each location link
$('#index a').click(function()
{
hideMarkers();
location.href = location.href + "#top";
var marker = showMarker( $(this).attr('data-id') );
GEvent.trigger( marker, "click" );
return false;
});
编辑 :分配可在IE7和IE8的网页上已装载为通过HTTP“位置”头页面重定向的结果window.location.hash休息。 解决的办法是使用Javascript返回一个页面,它本身将执行重定向。 见乔·拉普答案。
我在此生产的代码,它在IE7中工作正常...
location.hash = "#top";
不过,如果你只是试图滚动到顶部,这应该是一个容易得多...
window.scrollTo(0, 0);
该location
的对象被分成几个属性- href
只是其中之一
另外一个, hash
,是你在找什么。
top.location.hash = 'top';
您也可以做到这一点,而无需使用位置/ HREF在所有-只需使用scrollTo()
top.scrollTo( 0, 0 );
我还与windows.location.hash在所有浏览器,但IE7和IE8(至少在Vista)的工作问题。 很多实验后,我发现网页重定向被打破哈希分配。
如果您分配一个值从已加载通过HTTP“位置”报头重定向的结果页面内windows.location.hash将发生在IE7或IE8的错误。
发现在这之后,我能在别处找到一个解决StackOverflow上( 见这里 )。 该解决方案是通过JavaScript浏览器重定向。 在这里,我转贴来自其他StackOverflow的页面的解决方案:
<html>
<head>
<meta http-equiv="refresh" content="0; url=__REDIRECT_LOCATION__">
<script>window.location = "__REDIRECT_LOCATION__";</script>
</head>
</html>
这可以解释为什么有些人具有设置散列问题,有些人没有,但我不知道该线程的鼻祖被重定向。
我还要指出的是,我不能只使用scrollTo(),因为我的目的是去除从地址栏中的哈希标签无需重新加载页面,而不是滚动。
location.href = location.href.split("#")[0] + "#top"
编辑:避免以往任何时候都具有两个散列的可能性。
你必须追加前检查哈希值。 我这个做了,
window.location = ((location.href).indexOf('#') == -1 ? location.href + "#top" : location.href);
window.location.href = '#top';
如果这不起作用,请尝试完整的URL
window.location.href = 'http://domain.com/my.html#top';