J'essaie de vérifier si une fantaisie a déjà été chargée. Si oui, j'exécute un script Ajax pour mettre du contenu à l'intérieur.
Si non, je ouvre une fantaisox iframe et qu'il récupère du contenu. P>
Voici le code: P>
if ($('div#fancybox-frame:empty').length >0) { alert('it is empty'); $.fancybox({ 'width': '80%', 'height': '80%', 'autoScale': true, 'transitionIn': 'fade', 'transitionOut': 'fade', 'type': 'iframe', 'href': '/show_photo' }); } else{ alert('it is full'); $.ajax({ type: "GET", url: "/show_photo", success: function(data){ cropping_arrived(); } }); } });
5 Réponses :
Cela devrait fonctionner sans tester pour Cependant, Ça pourrait s'étouffer. Dans ce cas, placez les étiquettes d'ouverture et de fermeture sur la même ligne. P> p> .length code>
: vide code> vérifie les nœuds de texte. Donc, si vous
div code> a une pause de ligne, c'est-à-dire p>
Cela fonctionne pour moi
J'ai fait fonctionner avec le code ci-dessous:
if(typeof $.fancybox == 'function') { fancy box loaded; } else { fancy box not loaded; }
Fonctionne très bien! Cela devrait être la meilleure réponse!
Intéressant que cette question ne répond pas à la question de l'OPS, mais a les votes ultérieurs qu'il a. Même le titre ne se prête pas à cette réponse.
J'ai construit une application utilisant FANCYBOX, je pose donc mes conclusions sur différents threads connexes, je trouve discuter des problèmes que j'ai rencontrés. L'amit Sidhpura Solution est idéale pour vérifier si le script FANCYBOX JS est présent dans le DOM ou, en d'autres termes, si le plug-in $ .Fancybox est présent.
Cependant, il ne vous dit pas si FANCYBOX a été initialisé ou non.
Pour ce faire, vous pouvez effectuer ce qui suit: p> ou les suivants: p> en fonction de laquelle jQuery Version Vous exécutez. P> Déconnectez ce jsfiddle < / a> pour référence. p> p> JSFIDDLE: H2>
Dans mon cas pour finir ici dans ce fil, j'ai eu une vérification de script si une entrée utilisateur avait été détectée via le mouvement de la souris ou l'activité du clavier. Cependant, la page mère n'était pas détectée d'activité lorsqu'elle était à l'intérieur d'une iframe FANCYBOX.
Pour ajuster et compenser ce fait, je laisse le script exécuté dans l'arrière-plan savoir s'il y a une iframe ouverte dans le DOM (comme je n'utilise pas iframes en outre avec FANCYBOX) en utilisant le code suivant: P>
if ($('body iframe').length > 0) { console.log('Fancybox Open'); } else { console.log('Fancybox NOT Open'); }