Javascript 添加目标=“_顶部”;添加到fancybox iframe中的墨水

Javascript 添加目标=“_顶部”;添加到fancybox iframe中的墨水,javascript,jquery,iframe,fancybox,fancybox-2,Javascript,Jquery,Iframe,Fancybox,Fancybox 2,我有一个通过fancybox iframe访问的页面设置。fancybox iframe内部的链接如何加载到iframe的父窗口中?因此,如果用户单击链接,它将重新加载页面并加载已单击的链接。如何向所有链接添加target=“\u top”属性 e、 g 假设在您的子页面中有如下常规链接: <p>This link opens <a href="http://google.com">GOOGLE</a></p> <p>This link

我有一个通过fancybox iframe访问的页面设置。fancybox iframe内部的链接如何加载到iframe的父窗口中?因此,如果用户单击链接,它将重新加载页面并加载已单击的链接。如何向所有链接添加target=“\u top”属性

e、 g


假设在您的子页面中有如下常规链接:

<p>This link opens <a href="http://google.com">GOOGLE</a></p>
<p>This link opens <a href="http://jsfiddle.net">JSFIDDLE</a></p>
<p>This link opens <a href="http://stackoverflow.com">STACKOVERFLOW</a></p>
现在,iframed页面上的每个链接都将关闭fancybox并在父(顶部)页面中加载引用的URL

注释

  • 我们需要在
    .assign()
    方法中传递
    this.href
    ,该方法对应于每个链接的
    href
  • 我们不需要在子页面中包含jQuery
  • 使用iframes需要遵守以下规则:

请参阅演示:如果您使用的是Fancybox 3,您将需要此稍加修改的版本:

jQuery(document).ready(function ($) {
    $("[data-fancybox]").fancybox({
        type : "iframe",
        onComplete : function () {
            $(".fancybox-iframe").contents().find("a").attr("onclick", "parent.location.assign(this.href);parent.$.fancybox.close();")
        }
    });
});

添加这个额外的答案,因为这个线程是搜索中唯一一个几乎有用的东西。我觉得Fancybox的当前版本值得更新。

谢谢回复。如何不在我的类(.ajax processed)中使用此代码@zhe:你是什么意思?如果对不同类型的内容使用相同的fancybox代码,则可以设置一个条件,将代码仅应用于iframe。这就是你想要的吗?对不起,我不懂英语。我使用谷歌翻译。我需要打开家长(顶部)页面中的所有链接。你的代码确实有效。但是有些链接是在iframe@zhe中打开的,那么,在你的问题中添加这些链接的相关html/js代码,否则我猜不出你在做什么。
jQuery(document).ready(function ($) {
    $(".fancybox").fancybox({
        type : "iframe",
        afterShow : function () {
            $(".fancybox-iframe").contents().find("a").attr("onclick", "parent.location.assign(this.href);parent.$.fancybox.close();")
        }
    });
}); // ready
jQuery(document).ready(function ($) {
    $("[data-fancybox]").fancybox({
        type : "iframe",
        onComplete : function () {
            $(".fancybox-iframe").contents().find("a").attr("onclick", "parent.location.assign(this.href);parent.$.fancybox.close();")
        }
    });
});