FancyBox / Popup Deeplinking

时间:2012-02-05 20:32:30

标签: javascript jquery html fancybox deep-linking

如何在页面上实现深层链接,以便当用户从外部链接访问该页面时,启动该fancybox模式。我是JS / Jquery的新手

2 个答案:

答案 0 :(得分:0)

今天早上我一直在找同样的事情,发现你的问题以及一个有答案的论坛帖子。

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

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

})();

“然后,如果您链​​接到该页面,以这种形式传递您的两个数字参数:

concert.html AB = 1 | 5

它应该具有调用页面(1,5)的惊人效果;页面加载时“

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

希望它有所帮助 - 它帮助了我。 :)

答案 1 :(得分:0)

我刚用fancybox2和url哈希解决了这个问题。

您可以使用Fancybox回调来设置和取消设置哈希值 我使用img标签中的数据属性来存储img标识符 然后你可以在pageload中检查url中的哈希值,获取索引并打开带有给定索引的fancybox。

  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);