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

Gia*_*aro 6 javascript php iframe http-referer http-headers

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

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

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

ear*_*l3s 11

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

如果您在同一个域中,则可以访问document.referrerjavascript,并可以通过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();
Run Code Online (Sandbox Code Playgroud)

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

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