我正在使用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上的示例代码。
答案 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);
}
}
});