如何获取fancybox iframe的位置?

时间:2016-04-16 18:05:53

标签: jquery iframe fancybox

我正在使用Fancybox作为我的弹出窗口。每当我创建新的iframe时,iframe都会包含一个包含指向其他页面的链接的页面。当用户点击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上的示例代码。

1 个答案:

答案 0 :(得分: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);
      }
  }

});