2014-05-20 13 views
6

Stiamo prendendo il nostro codice modulo di iscrizione iframe e posizionandolo su una pagina del sito. Vogliamo essere in grado di vedere da dove proviene qualcuno se atterrano sulla pagina e hanno inserito le loro informazioni nel modulo.Come ottenere l'origine referrer della pagina padre iframe?

Ad esempio: il nostro iframe è incorporato in una pagina. L'URL di quella pagina viene pubblicato su Facebook. Qualcuno fa clic sul link, atterra sulla pagina e inserisce le informazioni nel nostro modulo di iscrizione iframe. Vogliamo quindi essere in grado di dire che 1 referral proviene da Facebook.

Abbiamo provato a utilizzare $ _SERVER ['HTTP_REFERER'], ma questo restituisce solo l'URL della pagina principale di dove è incorporato l'iframe, che non vogliamo. Vogliamo l'URL effettivo del referral alla pagina padre (nell'esempio sopra, sarebbe Facebook). C'è comunque per prendere questa informazione?

+0

è l'iframe sia la pagina principale sullo stesso dominio? – earl3s

+0

No. L'iframe è ospitato su un dominio separato e la pagina padre è un dominio separato. –

+0

Ho aggiunto l'unica cosa che posso pensare di fare come risposta. La sicurezza interdominio non ti permetterà di ottenere il referrer attraverso un iframe su un altro dominio. – earl3s

risposta

9

Purtroppo la sicurezza tra domini bloccherà queste informazioni da te dato che l'iframe non si trova nello stesso dominio della pagina padre che lo sta incorporando. Puoi controllare il referrer nel tuo iframe ma ti darà solo il nome della pagina che lo sta incorporando.

Se ti trovavi nello stesso dominio avresti accesso allo document.referrer in javascript e potresti recuperarlo tramite l'iframe.

Tuttavia, ho un'idea per una soluzione.

Se si utilizzava uno script per incorporare l'iframe nella pagina padre, si poteva fare qualcosa del genere.

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(); 

Questo permetterebbe di allora nella vostra iframe leggere la stringa di query referrer dal vostro URL e inviare le informazioni al server. Ti richiederebbe di impacchettare un po 'di javascript con il tuo widget, ma potrebbe essere l'unica soluzione per te.

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