2016-04-16 3 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); 
     } 
    } 

});