2010-08-11 3 views
0

J'ai ajouté ce code ci-dessous à un composant WebPart MOSS 2007 à l'intérieur de la méthode OnPreRender(). La page se charge, saute à l'ancrage spécifique, puis revient en haut de la page. Cela a été testé dans IE8, Firefox, Chrome et Safari avec le même comportement.Javascript ancre sauter au début numéro

Une idée?

+0

Et quel est le problème? –

+0

Comme mentionné, la page ne reste pas à l'ancre que je le souhaite, mais revient en haut de la page. – madatanic

Répondre

0

Essayez d'utiliser:

ClientScript.RegisterStartupScript(...) 

De l'Article MSDN here:

Le bloc de script qui est rendu par la méthode RegisterStartupScript exécute lorsque la page se termine le chargement, mais avant le client de la page L'événement onload est déclenché. Le script de démarrage blocs se trouvent au bas de la page ASP.NET rendue juste avant le tag de formulaire.

ou utiliser jQuery:

$(document).ready(function(){window.location.hash="anchor";}); 
+0

J'ai essayé les deux. Avec le premier, la page ne saute pas à l'ancre du tout. Avec le second, même comportement. Merci d'avoir aidé. – madatanic

+0

En outre, la fonctionnalité par défaut de www.example.com # my_anchor est de faire défiler la page et trouver

+0

vous pouvez également ajouter un délai d'attente :) $ (document) .ready (function() {window.setTimeout ('fenêtre .location.hash = "ancre"; ', 1000);}); –

0

Êtes-vous comportant le signe dièse "n" devant votre nom d'ancrage? à savoir,

window.location.hash = '#anchor'; 

Aussi, voir window.location.hash issue in IE7 en ce qui concerne l'utilisation focus() ou scrollIntoView() à la place.

+0

Essayé cela aussi, le signe # n'a pas fait de différence. Également essayé string.Format ("document.getElementsByName ('{0}') [0] .scrollIntoView (true);", "ancre") ;. N'a pas travaillé non plus. On dirait que SharePoint joue avec moi. – madatanic

0

Essayez d'utiliser

window.location.href = '#ancre';