2013-03-07 211 views
0

使用fancybox(v2),我怎样才能创建一个独特的url,在加载时,用iframe内容显示fancybox。我已经使用内联内容(例如www.mysite.com/index.html#idgoeshere)工作得很好,但不知道url或js应该包含哪些内容才能加载fancybox,并且在其中包含特定的iframe或ajax.txt页面。jquery fancybox,iframe或ajax,使用url加载

我所试图实现的,是去一个链接,如:

www.mysite.com/index.html#iframe.html

加载索引页面,用打开的fancybox窗口,以及加载到fancybox窗口中的iframe.html页面(也可以是通过ajax加载的.txt文件)。

HTML

<a class="fancybox fancybox.iframe" href="iframe.html">Iframe</a> 

的fancybox

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

感谢任何帮助或指导。

凯尔

更新

感谢大家的帮助!这里是最终为我工作的最好的。我救了我们我的内容转换成单独的HTML文件,然后叫他们fancybox.iframe

JS:

<script> 
$(document).ready(function() { 
    $('.fancybox').fancybox({ 
    'scrolling' : 'no' 
    }); 
    if (window.location.hash !== "") { 
     $(window.location.hash).click(); 
    } 
}); 
</script> 
+0

我想你想减少da加载时间 – 2013-03-06 18:11:59

+0

可能重复的[jquery fancybox加载时间和独特的URL](http://stackoverflow.com/questions/15251905/jquery-fancybox-load-times-and-unique-urls) – JFK 2013-03-08 02:23:24

+0

不要重复相同的问题,编辑较旧的,如果你想详细说明 – JFK 2013-03-08 02:24:40

回答

0

查看the Fancybox site上的示例Fancybox操作完全基于链接的href。因此,如果加载页面,然后在调用.fancybox之前更新页面上链接的href以指向iframe.html,那么它应该按预期工作。警告:未经测试的代码我的头跟着顶部...

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

需要的子呼吁从哈希字符串中删除#window.location.hash

希望回到这有助于

+0

Thanks @ jxpk777,#target是.fancybox类吗? – Kyle 2013-03-08 14:34:02

+0

是的,无论目标元素是替代该内容,无论您打算最终调用'.fancybox'。我同意乔的观点,即使用位置散列并不是一个好主意。可能与查询字符串的东西是一个更好的方法。 – jxpx777 2013-03-08 16:27:17

1

使用#标签是一个坏主意,因为像谷歌和Facebook等网站往往忽略它们。

相反,在fancybox的afterLoad函数中使用window.history.replacestate。

例如:

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

约replaceState奇怪的是,前两个参数并不重要(据我所知)。唯一重要的是最终的参数“/ url-to-set”。您希望将其设置为您想要用作网址的唯一网址。

+0

感谢乔,但这是否会随着内容每次都弹出fancybox?我期望能够只使用特定的URL调用弹出。谢谢。 – Kyle 2013-03-08 13:53:12