Wir haben eine JavaScript-Funktion, die eine Seite mit Anker an eine bestimmte Position "verschieben" soll. Diese Funktion funktioniert nur window.location.href = "#" + hashName
. Dies funktioniert in FF, aber nicht in IE. Ich habe diesen Code mit IE7 unter Windows XP getestet. Ich habe versucht using window.location.href
, window.location.hash
, window.location.replace
und all diese Möglichkeiten, aber mit document
Objekt. Kann jemand mit diesem Problem umgehen?window.location.hash Problem in IE7
Antwort
IE und die meisten anderen Browser auf einen Anker mit anchor.focus() oder auf ein beliebiges Element mit einer ID mit element.scrollIntoView (true)
Danke, es funktioniert. –
Gut gearbeitet. +1 –
Haben Sie versucht, nur location.hash
zu ändern?
window.location.hash = "#" + hashName;
Ich habe es versucht, aber es funktioniert auch nicht –
nicht vertraut mit diesem. sieht gut aus. * geht zu testen ... * –
funktioniert in Firefox 3 –
I getestet nachgeführt dies in IE7 unter Vista scrollt , vielleicht besteht das Problem nur in IE7 unter XP? Weil das für mich funktioniert in IE7, Chrome und Firefox:
window.location.hash = hashName;
Wenn dies wirklich nicht funktioniert, dann könnten wir verwenden ScrollIntoView als Kennebec vermuten lässt.
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);
}
Verwendung wie folgt aus:
<script type='text/javascript'>scrollIToAnchor('foo');</script>
<a name='foo'></a>
<p>I will be scrolled into view</p>
Es gibt auch ein Problem, das ich über
kamhttp://artur.ejsmont.org/blog/content/window-location-hash-difference-in-ff3-and-opera
Was meinen Sie mit 'Dokument-Objekt'? Sie sollten 'window.location' wie in den Antworten vorgeschlagen verwenden -' document.location' ist Gecko-spezifisch! – Christoph
Ich habe beide verwendet - und sie funktionieren nicht –
Vladimir, funktioniert für mich in IE7/XP ... – James