appel Fancybox dans le parent de l'iframe
J'ai 2 pages, mon index.html et social.html. J'ai nettoyé mon index et n'ont laissé que le jquery, le code nécessaire pour fancybox Ce que je suis en train de faire est d'avoir des images à l'intérieur social.html et lorsqu'il est cliqué sur elle, il allait ouvrir fancybox et de la montrer, mais dans index.html pas à l'intérieur de l'iframe. L'erreur est:
Uncaught TypeError: Property 'showImage' of object [object DOMWindow] is not a function
(anonymous function)social.html:103
onclick
c'est mon index.html:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.fancybox-1.3.4.pack.js"></script>
<link rel="stylesheet" type="text/css" href="css/jquery.fancybox-1.3.4.css" media="screen" />
<script type="text/javascript" src="js/video.js"></script>
<script type="text/javascript">
function showImage(image) {
$.fancybox('<img src="img/' + image + '" alt="" border="0" />');
};
</script>
</head>
<body>
<iframe src="social.html" scrolling="no" border="0" width="579" height="505" allowtransparency="true"></iframe>
</body>
</html>
dans un IFrame page:
<img src="img/picture1.jpg" alt="" class="thumbs" onclick="parent.showImage('picture1.jpg');"/>
PS: les deux pages sont sur le même domaine...
EDIT: video.js -> c'est à partir de fancybox je n'ai pas à le faire.
jQuery(document).ready(function() {
$(".video").click(function() {
$.fancybox({
'padding' : 0,
'autoScale' : false,
'transitionIn' : 'none',
'transitionOut' : 'none',
'title' : this.title,
'width' : 640,
'height' : 385,
'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {
'wmode' : 'transparent',
'allowfullscreen' : 'true'
}
});
return false;
});
});
- Il devrait fonctionner correctement.
- c'est ce que je pensais, mais ce n'est pas elle garde me donne cette erreur :S
- Qu'est ce qu'il y a à l'intérieur de
js/video.js
. Si ce js a aucune erreur deshowImage
fonction ne sera pas analysé par le navigateur JS moteur. Et dans ce cas uniquement, il va lancer cette erreur. - j'ai juste ajouté video.js code mais c'est directement à partir de fancybox je n'ai rien changé.
- Voyez-vous de la JS erreur au chargement de la page dans la console?
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devriez être en utilisant fancybox v2.x transparente de le faire (correctifs fancybox v1.3.x ne prend pas la peine de faire l'effort)
Deuxièmement, vous avez besoin d'avoir dans les deux pages, la page parent et l'iframed page, chargé fancybox jquery et css et js fichiers, dans le but de transcender fancybox correctement,
donc, dans ces deux pages, vous devriez avoir au moins quelque chose comme:
et
puis dans votre iframed (enfant) page de votre script de base est le même (mais avec le droit fancybox options pour v2.x ... consultez la documentation ici)
mais au lieu de cela
ce faire:
puis fancybox s'afficher dans la page parent hors des limites de la iframed page
Mise à JOUR: Page de démonstration ici
iframe
où la fancybox sera lancé à partir de. Sinon, je ne suis pas sûr de ce que vous demandez, désoléDepuis l'img est sur un iframe est une autre page web. Si Jquery est sur index.html mais l'img ne marche pas, c'est pourquoi JQuery ne peux pas obtenir à l'image.
Peut-être en utilisant quelque chose comme ça... Mais je ne pense pas que cela fonctionnerait
Sur index.html partie de script
Et ajouter l'id de l'iframe déclaration
< iframe src=\"social.html\" id="iframeID" etc... reste de propriétés>
Mais, mon conseil est d'utiliser des divs au lieu de les iframes.
Vous devez également supprimer le onclick de l'image pour les non obstrusive Javascript.
Vérifier le tutoriel: http://fancybox.net/howto
Si vous voulez un tutoriel similaire en espagnol, vous pouvez consulter mon site aussi.
Ive rencontre ce problème avant et a été en mesure de trouver une solution. Voici ce que iv fait.
dans mon iframe page, j'ai appelé la fenêtre parente avec le href p. ex.
onClick="callMe('www.google.com')"
ou si "photos/images/photos.png"et d'appeler ce script dans ma page parent
dans mes parent html nous avons droit un leurre lien (celui-ci est à partir de l'exemple de la charge fancybox)
Vous pouvez télécharger un exemple ici..
https://docs.google.com/file/d/0B1TI7BdxGAbvYzBiZjNiMDYtNjY4ZS00NDczLWE2YjQtODNlMjU4YTNjYWI0/edit?authkey=CP_H9rAC