L'ancre des liens à l'intérieur de l'iframe ne fait rien
Est-il possible d'avoir un non-défilement iFrame à l'intérieur d'un div défilement, et ont des liens d'ancrage à l'intérieur de l'iFrame travail correctement? L'ancre des liens à l'intérieur de l'iFrame devrait faire défiler jusqu'à l'endroit à l'intérieur de l'iFrame, je n'ai pas besoin/voulez point les éléments sur la page parent.
Voici mon jsFiddle avec un exemple simple:
http://jsfiddle.net/shopguy/WjmHG/
et le code:
<div style="width: 100%; height: 300px; overflow: auto;">
<iframe style="width: 100%; height: 2000px;" src="http://www.hypergurl.com/anchors.html" scrolling="no"></iframe>
</div>
Je n'ai pas de relation avec la hypergurl.com lien utilisé dans mon exemple, c'était juste le premier exemple que j'ai pu trouver une page avec une ancre par id/nom de la syntaxe de lien.
Si vous chargez le JSFiddle et cliquez sur le "Saut vers le Bas" lien à l'intérieur de l'iFrame, il ne fait rien (teste avec FireFox 19.0.2). Lors des tests avec différentes pages, ça ne fonctionne jamais dans FireFox, google Chrome cela fonctionne parfois la première fois qu'il est cliqué, mais ensuite, si vous faites défiler et cliquez de nouveau, il ne fonctionne pas. Dans IE8 il fonctionne (manuscrits) la plupart du temps.
Défilement fonctionne correctement tout le temps si je laisse l'iFrame elle-même les barres de défilement (supprimer scrolling="no"). Ce n'est pas une solution pratique pour moi, même si, comme je l'ai contenu en dehors de l'image que je veux faire défiler avec elle. Dans mon code j'définir dynamiquement la hauteur de l'iFrame pour remplir son contenu, de cette manière, il semble être plus comme le contenu sur ma page.
Pour plus d'infos, pourquoi j'ai besoin pour ce faire:
Je suis en train de créer une base de client de messagerie et jusqu'à présent, il semble y avoir le moins de problèmes si j'affiche le code HTML de corps des e-mails à l'intérieur d'une iframe, vs tentez d'afficher dans une cellule de tableau ou de la div à l'intérieur de ma page. J'aimerais que ce type de liens à travailler. J'ai un certain contrôle sur le contenu, il s'agit de mon serveur et je peux le modifier certains (mais qui ne veulent pas le pirater trop). Par exemple, j'ai déjà modifier tous les liens s'ouvrent dans une nouvelle fenêtre (mais pas les liens qui commencent par #, donc ce n'est pas ma question).
Je sais que GMail n'utilise pas les iFrames, mais mon XFINITY (par câble Comcast) web-client de messagerie sur le fait, et ils ont réussi à les faire fonctionner (mais jusqu'à présent, n'ont pas compris que tout ce qu'ils font).
OriginalL'auteur eselk | 2013-03-26
Vous devez vous connecter pour publier un commentaire.
Découvrez ce post: Lien saut à l'Intérieur d'une iFrame
Si votre iframe a un autre domaine, alors vous ne pouvez pas utiliser un javascript solution pour résoudre ce problème, mais si elle l'est, alors vous pouvez ajouter l'target="_parent" attribut à tous les points d'ancrage à l'intérieur de l'iframe.
OriginalL'auteur Sam
J'ai récemment ajouté du code pour cette bibliothèque de régler tous les problème avec les Liens d'Ancrage à l'intérieur d'une iFrame.
https://github.com/davidjbradshaw/iframe-resizer
Il intercepte toutes les requêtes de la page de navigation et de faire défiler la page jusqu'à la position correcte. S'il ne trouve pas le point d'ancrage dans l'iFrame, c'bulles à la page parent et de la recherche.
OriginalL'auteur user2684310