2008-11-06 4 views
2

Heres un délicat. .asp.net IFrame barre de défilement push to top. .

J'ai une page Web (appelée PageA) qui a un en-tête et qui inclut simplement une iframe. Appelons la page dans la PageB iframe. PageB a tout simplement un tas de vignettes mais il y en a beaucoup donc vous devez faire défiler vers le bas sur PageA pour les voir tous.

Lorsque je fais défiler vers le bas de la pageB et que je clique sur une vignette, il semble que cela me mène à une page blanche. Ce qui se passe réellement, c'est que cela fait apparaître l'image mais comme la page qui est juste l'image est beaucoup plus courte, la barre de défilement reste au même endroit et ne l'ajuste pas. Je dois faire défiler vers le haut de la page pour voir l'image.

Y at-il de toute façon quand je clique sur un lien sur une page qui se trouve dans une iframe, les pages extérieures Barre de défilement remonte au sommet

thks, ak

+0

@mek J'ai republié javascript et html parce que c'est un problème commun quel que soit votre langage d'implémentation côté serveur – tardate

Répondre

6

@mek après avoir essayé différentes méthodes, la meilleure solution que j'ai trouvé est la suivante:

Dans la page externe, définir une fonction de défilement:

<script type="text/javascript"> 
    function gotop() { 
    scroll(0,0); 
    } 
</script> 

Ensuite, lorsque vous définissez l'iframe, définissez un gestionnaire onload (qui se déclenche chaque fois que les charges de source iFrame-à-dire à chaque fois que vous accédez à une nouvelle page dans l'iframe)

<iframe id="myframe" 
    onload="try { gotop() } catch (e) {}" 
    src="http://yourframesource" 
    width="100%" height="999" 
    scrolling="auto" marginwidth="0" marginheight="0" 
    frameborder="0" vspace="0" hspace="0" > 
</iframe> 

la bonne chose au sujet de cette approche est-il mea ns vous n'avez pas besoin d'apporter des modifications aux pages incluses dans l'iframe (et le contenu iframe peut heureusement être dans un autre domaine - pas de problèmes de script intersite).

+0

Cela a fonctionné pour moi. La solution parfaite, et comme vous l'avez dit, la meilleure chose est que je n'ai pas à forcer de codebehind pour "aller au sommet". Ça le fait juste. – Fandango68

1

Javascript est votre meilleur pari. Vous pouvez utiliser le scroll() method pour revenir en haut de votre IFRAME. Ajoutez un gestionnaire javascript dans le corps de sorte que chaque fois que vous cliquez sur une vignette, appelez une fonction qui appelle scroll() pour faire défiler vers le haut.

0

J'ai passé un temps considérable à essayer de trouver comment faire défiler vers le haut de l'iframe à partir du code PHP que j'appelais (à partir de la page ASP.NET parent). Je n'ai jamais pensé que je pourrais faire défiler vers le haut en utilisant le même javascript, mais dans l'événement onload d'iframe. Merci!