de la fenêtre.emplacement = #ancre ne fonctionne pas sous IE
Sur cette carte:
http://web.pacific.edu/documents/marketing/campus-map/version%202/stockton-campus-2.0.htm
J'ai un point d'ancrage en haut, et je veux que la page pour passer à l'ancre, lorsque le lien est cliqué.
Je suis actuellement à l'aide
window.location = '#top';
Il fonctionne comme prévu dans les FF, Opera et Chrome, mais pas sous IE 7.
J'ai essayé toutes les permutations de la fenêtre.emplacement.de hachage et de la fenêtre.emplacement.assign() et aussi scrollIntoView(vrai) et focus().
Comment puis-je le faire fonctionner sous IE?
Modifier: Rien ne semble fonctionner, ce qui me fait penser que ce n'est pas la syntaxe, mais quelque chose à propos de la JS... ici est le gestionnaire d'événements click... pourrait-il être parce qu'il renvoie false? Je suis à saisir les pailles.
//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;
});
Modifier: Affectation à la fenêtre.emplacement.hachage des pauses dans IE7 et IE8 sur des pages qui ont été chargés en tant que résultat de la page de redirection via le protocole HTTP et le "Lieu" de l'en-tête. La solution est de retourner une page avec du Javascript qui sera lui-même effectuer la redirection. Voir la réponse de Joe Lapp.
OriginalL'auteur | 2009-07-23
Vous devez vous connecter pour publier un commentaire.
J'ai ce code dans la production et il fonctionne très bien dans IE7...
Toutefois, si vous essayez juste de faire défiler vers le haut, cela devrait être beaucoup plus facile...
OriginalL'auteur Josh Stodola
La
de l'objet est divisé en plusieurs propriétés -
href
est seulement l'un d'euxUn autre,
hash
, est ce que vous cherchez.Vous pouvez également le faire sans l'aide de l'emplacement/href simplement utiliser scrollTo()
Vraiment? Fonctionne pour moi. IE 7.0.5730.13. Pour info, vous n'avez pas besoin d'une ancre nommée pour #top pour travailler les navigateurs lire automatiquement. Sinon, vous pouvez utiliser
top.scrollTo(0,0);
Pour être plus précis, tout de hachage qui ne correspond à aucune identification de l'élément sera automatiquement vers le haut de la page (c'est à dire pas seulement
#top
). Il pourrait être#top
,#GOGOGADGETSCROLLUP
ou tout simplement#
.OriginalL'auteur Peter Bailey
J'ai également eu un problème avec windows.emplacement.hachage de travail dans tous les navigateurs, mais IE7 et IE8 (au moins sur Vista). Après beaucoup d'expérimentation, j'ai découvert que la page de redirection a été la rupture de hachage affectation.
Une erreur se produit dans IE7 ou IE8 si vous assignez une valeur à windows.emplacement.de hachage à partir d'une page qui a été chargé comme un résultat de la redirection via le protocole HTTP et le "Lieu" de l'en-tête.
Après avoir découvert cela, j'ai été en mesure de trouver une solution ailleurs sur StackOverflow (voir ici). La solution est d'avoir le navigateur de redirection via Javascript. Ici, je repost la solution de l'autre StackOverflow page:
Ceci pourrait expliquer pourquoi certaines personnes ont un problème avec la configuration de hachage et certains ne l'étaient pas, mais je ne sais pas que l'auteur du thread réorienter.
Je tiens également à souligner que je ne pouvais pas l'utiliser scrollTo() parce que mon but était de supprimer le hash tag dans la barre d'adresse, sans rechargement de la page, de ne pas défiler.
OriginalL'auteur Joe Lapp
location.href = location.href.split("#")[0] + "#top"
EDIT: afin d'éviter la possibilité d'avoir deux tables de hachage.
stackoverflow.com/search?q=gobble#hlogo fonctionne très bien pour moi
Si vous faites cela, n'est-ce pas ajouter le #top plusieurs fois à la fin de l'URL?
je suis en supposant qu'il n'est pas à l'aide de la
href
de l'ancre.modifié pour inclure l'alternative sans js
OriginalL'auteur geowa4
Vous devez les vérifier de hachage avant d'ajouter. Je l'ai fait avec ce,
window.location = ((location.href).indexOf('#') == -1 ? location.href + "#top" : location.href);
OriginalL'auteur user3526
Et si cela ne fonctionne pas, essayez l'URL complète
OriginalL'auteur Itay Moav -Malimovka