2011-03-09 27 views
2

我使用Fancybox 1.3.4并将iframe设置加载到另一页到iframe中。Fancybox以'iframe'设置搞乱浏览器历史

$(".fancy").click(function(){ 
    return false; 
}); 

$(".fancy").fancybox({ 
    type: 'iframe', 
    width: 800, 
    height: 500, 
    overlayOpacity: 0.8, 
    overlayColor: '#222', 
    showNavArrows: false 
}); 

的链接看起来像这样

<a id="map_link" class="fancy" href="http://example.com/page">link</a>

问题是,每当我点击一个链接,它正确地加载iframe中,但也迫使父页面,再次浏览到自己。所以这意味着如果我打开和关闭fancybox 10次,我现在在父页面的浏览器历史记录中还有10个项目。在所有浏览器中测试过,并且全线遇到问题。

编辑Test case
这几乎模仿什么,我有我的网站上,的fancybox明智的。在Chrome 11和Firefox 3.6.14中使用jQuery 1.5,最新的fancybox和测试。当我点击链接5次时,我的浏览历史记录中会显示5个父框架网站实例。

+1

比'return false;更好''会是jQuery的'event.preventDefault()'。 ([链接到API](http://api.jquery.com/event.preventDefault/)) – David 2011-03-18 13:54:54

+0

你可以添加一个工作jsFiddle的测试用例吗? – Exelian 2011-03-18 14:00:40

+0

@Exelian添加了测试用例,在我测试的浏览器中仍然存在jsFiddle中的问题。 – roflwaffle 2011-03-18 15:11:49

回答

1

如果打开unpacked source code for FancyBox,你会在网上找到946

content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank');

如果评论说出来就会好,您有这个问题。至于它的功能,看起来它与an IE 'feature'有关。但是,我不确定为什么这是必要的。

+0

如果确认了答案,那么很好找! – daryl 2011-03-20 08:31:37