如何获取iframe父页面的引用来源?

时间:2014-05-20 17:12:17

标签: javascript php iframe http-headers http-referer

我们正在使用iframe条目表单代码并将其放在网站页面上。我们希望能够看到有人来自哪里,如果他们落在页面上并将信息输入表格中。

例如:我们的iframe嵌入在页面上。该页面的URL将发布到Facebook。有人点击链接,登陆页面,并将他们的信息输入我们的iframe报名表。然后我们希望能够说,1个推荐来自Facebook。

我们尝试使用$ _SERVER [' HTTP_REFERER'],但这只是返回嵌入iframe的父页面网址,这是我们不想要的。我们想要引用父页面的实际URL(在上面的示例中,它将是Facebook)。无论如何都要抓住这些信息吗?

1 个答案:

答案 0 :(得分:11)

不幸的是,跨域安全性会阻止此信息,因为您的iframe与嵌入它的父页面不在同一个域中。您可以检查iframe中的引荐来源,但它只会为您提供嵌入它的网页的名称。

如果您在同一个域中,则可以访问javascript中的document.referrer,并可以通过iframe检索该域。

我确实想知道解决方案。

如果您使用脚本在父页面上嵌入iframe,则可以执行以下操作。

function createIFrame() {
    var ref = document.referrer;
    ifrm = document.createElement("iframe"); 
    ifrm.setAttribute("src", "http://www.nba.com/?referrer="+ref); 
    ifrm.style.width = 640+"px"; 
    ifrm.style.height = 480+"px"; 
    document.body.appendChild(ifrm);
} 

createIFrame();

这将允许您在iframe中从您的网址中读取查询字符串referrer并将该信息发送到您的服务器。它需要你用你的小部件打包一些javascript,但它可能是你唯一的解决方案。

JSFiddle - http://jsfiddle.net/7QbPN/