2012-02-05 1 views
1

Comment implémenter un lien profond sur une page de sorte que lorsque l'utilisateur vient cette page à partir d'un lien externe, ce modal fancybox est lancé. Je suis nouveau à JS/JqueryFancyBox/Popup Deeplinking

Répondre

0

Je cherchais la même chose ce matin et j'ai trouvé votre question ainsi qu'un forum post qui a une réponse.

(function() 
{ 
    var qs = location.search.slice(1), 
     params = qs.match(/&?ab=(\d+)\|(\d+)/); 

    if(params) 
    page(Number(params[ 1 ]), Number(params[ 2 ])); 

})(); 

« Ensuite, si vous établissez un lien vers cette page en passant vos deux paramètres numériques sous cette forme:

concert.html ab = 1 | 5

Il devrait avoir l'effet étourdissant d'appeler la page . (1, 5), quand la page se charge "

http://www.webdeveloper.com/forum/showthread.php?t=247899

Hope it helps - il m'a aidé. :)

0

Je viens de le résoudre pour moi-même avec fancybox2 et url hashes.

Vous pouvez utiliser les rappels Fancybox pour définir et supprimer les hachages.
J'ai utilisé des attributs de données dans la balise img pour stocker des identifiants img.
Ensuite, vous pouvez vérifier un hash dans l'URL à pageload, obtenir l'index et ouvrir la fancybox avec l'index donné.

var option = { 
     afterLoad: function(links) { 
      var title = links.element.attr('data-my-img'); 
      location.hash = title; 
     }, 
     afterClose: function() { 
      location.hash = ''; 
     } 
    }, 
    hash = location.hash.substr(1), 
    gallery = $('.fancybox'); 
    if(hash.length > 0){ 
     //id 
     var i = null; 
     gallery.each(function(index) { 
      var o = $(this).attr('data-my-img'); 
      if($(this).attr('data-my-img') == hash){ 
       i = index; 
       return; 
      } 
     }); 
     if(i != null){ 
      option.index = i; 
      $.fancybox.open(gallery, option); 
     } 
    } 
    gallery.fancybox(option); 
+0

Il suffit de se référer à ce lien http://jsfiddle.net/f2fRM/2/show. supprimer "show" de l'URL pour voir le code –

Questions connexes