2010-01-01 3 views
0

J'ai une page appelée results.php qui a un iframe caché et un conteneur DIV. Lorsque la page est chargée, du code est exécuté dans l'iframe masqué qui, une fois terminé, charge les résultats dans la DIVISION CONTENT dans la page de résultats, générant une barre de défilement à results.phpDéfilement vers une ancre dans un DIV chargé par programme (à partir d'un iframe)

Tout cela fonctionne correctement, mais lorsque avoir des ancres dans le code généré dans le DIV (et finalement affiché par results.php) ils ne fonctionnent pas. J'ai essayé location.hash, scrollto et d'autres, et aucun ne fonctionne. Si j'affiche le code source de la page, je ne vois aucun contenu (comme ils ont été créés dans l'iframe et ensuite chargé dans la DIV RESULTS), ce qui explique probablement pourquoi location.hash et autres ne fonctionnent pas. De plus, getElementById ne voit aucune des ancres, je suppose pour la même raison.

Des idées pour que cela fonctionne?

Merci!

Répondre

0

La page chargée dans l'IFRAME a un contexte différent de la page contenant la DIV. Si vous essayez d'accéder au contenu externe de l'IFRAME interne, vous devez passer par des contorsions pour obtenir le document parent à partir du document imbriqué. Cela peut varier en fonction du navigateur.

0

En supposant que votre iframe a 'résultats' id, et votre point d'ancrage a id (nom non) 'my_anchor', cela devrait fonctionner:

var iframe_doc = document.getElementById('results').contentWindow.document; 
var anchor = iframe_doc.getElementById('my_anchor'); 
anchor.scrollIntoView(); 
Questions connexes