Comment obtenir la position de défilement de contenu c'est à l'intérieur d'un iframe

J'ai une page html qui contient une iframe chargement de certains arbitraire page.

<iframe id="siteframe" style="width: 400px; height: 400px;" src="http://www.cnn.com"></iframe>

Je veux être en mesure d'obtenir la position de défilement de la page à l'intérieur de l'iframe en javascript/jquery. Je suis encore un peu vert quand il s'agit de html/js des trucs, mais j'ai essayé quelques variantes de l'aide scrollTop et scrollLeft, mais sans succès. En voici un qui n'a pas fonctionné:

write($("#siteframe").contents().scrollLeft() + ", " + $("#siteframe").contents().scrollTop());

ce n'est pas du jamais écrire quoi que ce soit (écrire est une méthode qui ajoute juste le texte à l'écran).

si je supprime le .contents() comme ceci:

write($("#siteframe").scrollLeft() + ", " + $("#siteframe").scrollTop());

il écrit au moins quelque chose à l'écran, mais il est toujours 0,0 peu importe où l'actuall la position de défilement dans l'iframe est.

Quelle est la bonne façon d'obtenir la position x,y du contenu dans l'iframe dans le code javascript pour que ma page (qui contient l'iframe) peut l'utiliser?

Iframes ne sont pas évidentes car elles limiter votre accès à ce qui se passe en eux, pour des raisons de sécurité. Je ne pense pas que vous pouvez obtenir de l'information directement. Une alternative est de faire un iframe plus grande, et de mettre une iframe dans une div défilement, de sorte que les utilisateurs sont de défilement de la div et pas dans l'iframe. Je n'ai pas le temps pour s'assurer cela fonctionne pour le moment, bonne chance!
Si vous voulez juste de cacher une partie de l'iframe - envisager d'emballage iframe avec overflow:hidden; style de l'élément et ajouter des CSS top de l'iframe top: -20px; /*or some other value*/, cela permet de masquer la partie de l'iframe que vous NE VOULEZ pas l'AFFICHER du tout...

OriginalL'auteur FoamyGuy | 2013-05-08