window.location.hash issue in IE7

浪子不回头ぞ 提交于 2019-11-28 04:05:13

问题


We have a javascript function that should "move" a page to a certain position using anchors. This function just does window.location.href = "#" + hashName. This works in FF, but not in IE. I tested this code using IE7 under Windows XP. I have tried using window.location.href, window.location.hash, window.location.replace and all these ways, but using document object. Does anyone know how to deal with this issue?


回答1:


IE and most other browsers will scroll to an anchor with anchor.focus(), or to any element with an id with element.scrollIntoView(true)




回答2:


I justed tested this in IE7 under Vista, maybe the issue only exsists in IE7 under XP? Because this works fine for me in IE7, Chrome and Firefox:

 window.location.hash = hashName;

If this really doesn't work then we could use scrollIntoView as Kennebec suggests.

 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);
 }

Use like this:

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



回答3:


Have you tried changing just location.hash?

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



回答4:


There is also a problem i came across

http://artur.ejsmont.org/blog/content/window-location-hash-difference-in-ff3-and-opera



来源:https://stackoverflow.com/questions/934865/window-location-hash-issue-in-ie7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!