2016-04-16 13 views
1

私はポップアップにFancyboxを使用しています。新しいiframeを作成するたびに、iframeには他のページへのリンクを含むページが含まれます。ユーザーがiframe内の別のリンクをクリックしてポップアップを閉じると、訪問した最後のリンクを取得したいと思います。fancybox iframeの場所を取得するにはどうすればよいですか?

最後に訪問したリンクを取得するにはどうすればよいですか?私は始めたものだけを得ることができます。

$.fancybox({ 
type: 'iframe', 
href: 'https://slashdot.org/', 
beforeClose: function() { 
    alert('How do I get last link in the frame?'); 
    var name = $(this).prop("content")[0].name; 
    var iframename = "Frame Name: " + name; 
    var src = "Frame source: " + $('#' + name).attr('src'); 
    $('#output').html(iframename + "<br/>" + src); 
} 
}); 

JSFiddleのサンプルコードです。

答えて

0

私が提供した例はSame-origin policyに違反していました。

同じ起源のポリシーに違反していないIFrameがある場合は、次の操作を行って、ユーザーがIFrameで最後にクリックしたリンクを取得できます。


$(".iframe_jump").fancybox({ 
    type: 'iframe', 
    href: 'localFileWithLocalLinks.html', 
    beforeClose: function() { 
     // prop("content")[0] will retrieve a HTMLIFrameElement obj 
     var iframe = $(this).prop("content")[0]; 
     try { 
      // accessing 'contentWindow' property can trigger an error 
      var url = iframe.contentWindow.document.location; 
      var text = "Current window context location: " + url 
      console.log(text); 
     } catch(e) { 
      // log any errors 
      console.log(e); 
     } 
    } 

})。

関連する問題