Fancybox使用'iframe'设置搞乱浏览器历史记录

时间:2011-03-09 19:02:26

标签: javascript jquery fancybox

我正在使用Fancybox 1.3.4和iframe设置,该设置会将另一个页面加载到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-wise。使用jQuery 1.5,最新的fancybox并在Chrome 11和Firefox 3.6.14中进行测试。当我点击链接5次时,我在浏览历史记录中获得了5个父框架网站实例。

1 个答案:

答案 0 :(得分:1)

如果您打开unpacked source code for FancyBox,则会找到

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

在第946行。如果您发表评论,它将解决您遇到的问题。至于它的作用,它看起来与an IE 'feature'有关。但是,我不确定为什么有必要。