javascript - FancyBox 无法打开外部页面的链接

标签 javascript jquery fancybox fancybox-2

我遇到了 FancyBox 的问题,它可能很容易修复,但我无法弄清楚。我有一个链接,当点击链接时,我希望它打开外部页面。但问题是该链接只是刷新当前的 FancyBox,并没有打开其他页面。这是我的代码:

$("#preview-box").html('<a href="http://www.google.com" target="_blank" >Go To Original</a><iframe sandbox="allow-forms allow-scripts" src="http://www.yahoo.com" width="100%" height="100%" style="min-height: 500px;"></iframe>');

$('#preview-box').fancybox({
    autoSize: false,
    width: '80%',
    height: '80%',
    onClosed: function () {
        $("#preview-box").empty();
    },
    afterClosed: function () {
        $("#preview-box").empty();
    }
}).trigger('click');

我的问题是为什么新链接没有在新选项卡中打开并刷新当前内容,以及如何才能使其正常工作?

最佳答案

我读你的代码太快,并投票决定将你的问题作为重复问题关闭,抱歉:(

您遇到的真正问题是您处于循环中:您将 fancybox 绑定(bind)到的选择器 (#preview-box) 与 fancybox 是相同的选择器定位到...因此每次您单击 fancybox 内的链接(显示 #preview-box 的内容)时,都会在 fancybox 内再次调用相同的选择器。

你应该将代码更改为这样

$("#preview-box").html('<a href="http://www.google.com" target="_blank" >Go To Original</a>');

$.fancybox({
    href: "#preview-box",
    autoSize: false,
    width: '80%',
    height: '80%',
    afterClose: function () {
        $("#preview-box").empty();
    }
});

我删除了不必要的、过时的或有缺陷的代码,例如 iframeonClosed API 选项。

参见JSFIDDLE

关于javascript - FancyBox 无法打开外部页面的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012927/

相关文章:

javascript - 一页上有多个 slider : How to make arrows target a specific set of slides?

javascript - JQuery select2 从列表中的选项设置默认值?

jquery - 在哪里修改 fancybox 弹出元素位置行为?

javascript - 如果在循环内部使用,则强制将 getter 结果存储在变量中

javascript - 如何使用 Angular 处理 RxJS 中的错误

javascript - 在 ColdFusion 中获取页面位置

javascript - jQuery width() 不起作用

javascript - 单击 LI 时单击链接

javascript - 使用 iframe 自动调整 Fancybox 的内容大小

jquery - 当 showCloseButton 设置为 'false' 时,Fancybox iframe 关闭按钮不会隐藏