jquery fancybox, iframe ou ajax, charge avec l’URL

Avec fancybox (v2), comment puis-je créer une URL unique qui, lors du chargement, affiche la fancybox avec le contenu iframe. Je le fais très bien avec le contenu en ligne (ex. Www.mysite.com/index.html#idgoeshere), mais je ne sais pas ce que l’URL ou le js doivent contenir pour charger le fancybox, et à l’intérieur de celui-ci, un iframe spécifique ou la page ajax.txt.

Ce que j’essaie de réaliser, c’est d’aller sur un lien du type:

www.monsite.fr/index.html#https://stackoverflow.com/questions/15281530/jquery-fancybox-iframe-or-ajax-load-with-url/iframe.html

Chargez la page d’index, avec la fenêtre fancybox ouverte et la page https://stackoverflow.com/questions/15281530/jquery-fancybox-iframe-or-ajax-load-with-url/iframe.html chargée dans la fenêtre fancybox (vous pouvez également utiliser un fichier .txt chargé via ajax également).

HTML

Iframe 

Fancybox

  $(document).ready(function($) { $.fancybox({ content: $(window.location.hash).html() }); $('.fancybox').fancybox(); });  

Merci pour toute aide ou conseils.

Kyle

Mettre à jour

Merci pour tout le monde aide !! Voici ce qui a bien fonctionné pour moi. J’ai sauvegardé notre contenu dans des fichiers HTML séparés, puis je les ai appelés avec fancybox.iframe

JS:

  $(document).ready(function () { $('.fancybox').fancybox({ 'scrolling' : 'no' }); if (window.location.hash !== "") { $(window.location.hash).click(); } });  

Regardez les exemples sur le site Fancybox L’action Fancybox est entièrement basée sur le href du lien. Donc, si vous chargez la page, puis mettez à jour le href d’un lien sur la page pour qu’il pointe vers iframe.html avant d’appeler .fancybox , alors il devrait fonctionner comme prévu. Attention: code non testé à suivre…

 $(document).ready(function(){ $('#target').attr('href', window.location.hash.subssortingng(1)).fancybox(); }); 

L’appel de la sous-chaîne est nécessaire pour supprimer le # de la chaîne de hachage renvoyée par window.location.hash

J’espère que cela t’aides

L’utilisation du hashtag est une mauvaise idée car des sites tels que Google et Facebook les ignorent souvent.

À la place, utilisez window.history.replacestate dans la fonction afterLoad de fancybox.

Par exemple:

 afterLoad:function(){ window.history.replaceState({},"Fancybox","/url-to-set"); } 

Ce qui est étrange avec replaceState, c’est que les deux premiers arguments importent peu (pour autant que je sache). La seule chose qui compte est l’argument final “/ url-to-set”. Vous voulez définir ceci comme étant l’URL unique que vous voudriez avoir comme URL.