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

标签 javascript jquery fancybox

我正在使用带有 iframe 设置的 Fancybox 1.3.4,它在另一个页面中加载到 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 个父框架站点的实例。

最佳答案

如果您打开 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'有关。 .但是,我不确定为什么有必要。

关于javascript - Fancybox 使用 'iframe' 设置搞乱浏览器历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250809/

相关文章:

javascript - 如果选中一个复选框,则结束函数

javascript - jQuery - 在 Fancybox 中触发点击

javascript - 如何从日期/时间戳中减去两个不同的日期?

javascript - 单击链接(在移动屏幕上)后,如何关闭菜单?

javascript - 用简单的方式解释为什么分配给第一个变量的第二个变量没有更新?

javascript - 左边的花式框文字

javascript - 带有 jQ​​uery 的 fancybox v2

javascript - 使用 JavaScript 创建排序行

javascript - 粘性按钮到 sidr 侧面板

javascript - Javascript 和 jQuery 的变量