2010-10-18 13 views
5

Ho un iframe che sto utilizzando per inserire del contenuto ospitato da un fornitore di terze parti sul nostro sito web. Stiamo provando a determinare l'altezza di quel contenuto per regolare l'altezza dell'iframe, ma sto ricevendo errori di cross site scripting. Non ero a conoscenza del fatto che i sottodomini contano come un sito trasversale. C'è un modo per aggirare questo senza doverli mantenere in corrispondenti sottodomini?Scripting cross site sullo stesso dominio, sottodomini diversi

Per riferimento, il nostro marketing settimanale è ospitato dal fornitore di terze parti in flash ma con il sottodominio possiamo reindirizzare a loro mantenendo l'utente sui nostri domini a scopo di cookie.

risposta

4

Da uno dei sottodomini, è possibile (con alcune eccezioni) impostare il dominio per consentire un accesso più ampio ad altri sottodomini nello stesso dominio principale.

Date un'occhiata a questa pagina: http://www.tomhoppe.com/index.php/2008/03/cross-sub-domain-javascript-ajax-iframe-etc/

+0

Il fornitore con cui sto lavorando non era d'accordo a questo subito, ma ho provato questo fuori e ha funzionato così So che questo, almeno funziona. Grazie! – XOPJ

3

prendere anche uno sguardo al cross window messaging

Questa prima pagina è il mittente - si sta chiamando postMessage (che invia il messaggio testuale) e detiene anche l'iframe all'interno del quale si tiene la finestra di ricezione.

<iframe src="http://dev.jquery.com/~john/message/" id="iframe"></iframe> 
<form id="form"> 
    <input type="text" id="msg" value="Message to send"/> 
    <input type="submit"/> 
</form> 
<script> 
window.onload = function(){ 
     var win = document.getElementById("iframe").contentWindow; 
     document.getElementById("form").onsubmit = function(e){ 
       win.postMessage(document.getElementById("msg").value); 
       e.preventDefault(); 
     }; 
}; 
</script> 

La pagina di seguito è il ricevitore - ha un listener di eventi legati che veglia per i messaggi vengono passati ad esso e li inietta in al DOM.

<b>This iframe is located on dev.jquery.com</b> 
<div id="test">Send me a message!</div> 
<script> 
document.addEventListener("message", function(e){ 
     document.getElementById("test").textContent = 
       e.domain + " said: " + e.data; 
}, false); 
</script> 
+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. – VMAtm

+0

Certo .. Ma qui devo copiare molto dalla pagina per mostrare l'esempio. – mplungjan

Problemi correlati