2010-12-12 21 views
5

Attualmente sto cercando di caricare una pagina all'interno di un sottodominio, sul mio dominio principale, utilizzando un iframe, e fare in modo che il sottodominio chiami una funzione javascript (quando dom -ready) all'interno del mio dominio principale, in modo che il dominio principale possa ridimensionare l'iframe in base all'altezza del contenuto. Ecco un esempiodocument.domain "permesso negato" problemi con IE8

www.mysite.com (codice all'interno della pagina):

<script type="text/javascript"> 
document.domain = "mysite.com"; 
function doSomething() { 
    //do something 
} 
</script> 
<iframe id="mytestid" src="test.mysite.com" height="0" width="900"></iframe> 

E per il mio altro sito, test.mysite.com, ecco il codice all'interno della pagina:

<script> 
document.domain = "mysite.com"; 

$(document).ready(function() { 
    window.parent.doSomething(); 
}); 
</script> 

Questo sembra funzionare bene per Firefox, Safari e Chrome, ma non per IE8. IE8 mi dà sempre un "permesso negato" l'errore quando si effettua la chiamata window.parent.doSomething()

non ho potuto testare su IE7 o IE6 per vedere se il problema persiste, ma qualcuno ha riscontrato questo problema? Ho perso qualcosa con il modo in cui sto definendo il codice?

Grazie per l'aiuto ragazzi.

+0

possibile duplicato di [Permesso negato IE iFrame] (http://stackoverflow.com/questions/2953158/permission-denied-ie-iframe) – alex

risposta

1

Ecco un thread con un sacco di commenti su alcuni problemi possibili:

Nota che non ho testare questo, come io non ho IE. Purtroppo, sembrano convincere dal mio punto di vista - provalo e vedi se funziona per te.

Così, dal post di cui sopra, sembra che ci siano due possibili cause:

  • Il post contesta IE richiede che tutti i documenti per avere lo stesso dominio. Se disponi di più documenti (iframes e simili), prova a rimuoverli e prova con solo questi due (principale e iframe)
  • Vedere l'ultimo commento nel post: potrebbe essere solo una condizione di competizione. Prova a mettere in un setTimeout con alcuni secondi di attesa dopo entrambe pagine sono impostati document.domain sullo stesso valore
2

document.domain “permesso negato” problemi con IE8 RISOLTO !!

proprio come ha detto l'altro utente, è sufficiente impostare un timeout di un paio o secondi dopo impostare document.domain in cui l'iframe è sulla pagina, quindi chiamare la seconda pagina all'interno dell'iframe.

è necessario impostare il valore della vostra SRC iframe, un paio di secondi dopo aver impostato document.domain su IE8 e funzionerà ..

1

mi sono imbattuto nello stesso numero e con un timeout non ha fatto risolvere il problema.

Come se avessi un altro sito con impostazioni simili in cui tutto funzionava correttamente, ho aperto entrambe le finestre fianco a fianco e ho notato nella barra di stato in basso quella in "Intranet locale" mentre l'altra era in "Siti attendibili" ".

Questo mi ha portato ad un altro punto da verificare: assicurati che entrambi i sottodomini compaiano nella stessa zona di sicurezza nelle Proprietà di sicurezza Internet di IE! In caso contrario, verrà visualizzato un errore "Autorizzazione negata".

Problemi correlati