6

Ho letto molti altri articoli su SCRIPT5: problema di accesso negato in IE9, ma per quanto posso dire questo è un po 'diverso e non sono esattamente sicuro del motivo per cui sta accadendo.SCRIPT5: accesso negato su IE9 a causa del file CDN jQuery.min in Wordpress

La situazione si è verificata su un'installazione di Wordpress 3.4.1 utilizzando il tema standard 2011. I accodato miei script con la seguente funzione:

function my_scripts(){ 
    wp_deregister_script('jquery'); 
    wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js',null,null,true); 
    wp_register_script('cycle', 'http://ajax.microsoft.com/ajax/jquery.cycle/2.88/jquery.cycle.all.js',null,null,true); 
    wp_register_script('plugin', get_stylesheet_directory_uri() . '/scripts/plugin-init.js',null,null,true); 
    wp_enqueue_script('jquery'); 
    wp_enqueue_script('cycle'); 
    wp_enqueue_script('plugin'); 
} 

In primo luogo il jquery ei cycle script sono entrambi tirati da CDN. Lo script plugin è vuoto ad eccezione di una chiamata base cycle su un singolo elemento.

A questo punto tutti i browser hanno funzionato correttamente con l'eccezione di IE9. Ho ricevuto il seguente errore:

SCRIPT5: Access is denied 
jquery.min.js, line 2 character 68522 

ho scoperto abbastanza in fretta che questo era un problema di origine croce:

Access denied to jQuery script on IE

SCRIPT5: Access is denied in IE9 on xmlhttprequest

ho trovato questo strano dato che non c'erano origine croce funzioni nei miei plugin. Anche il problema si presentava su jquery e non sul mio codice. Ho provato diverse soluzioni suggerite ma non ho avuto fortuna.

Provato alcune cose di base. Spostato lo script direttamente nel piè di pagina. Ho provato a spostarlo direttamente nell'intestazione. Ho provato a tagliare i miei copioni fuori dall'equazione. Tirando fuori i capelli a questo punto.

La mia migliore scommessa sarebbe stata quella di vedere effettivamente cosa stava causando l'errore nel codice (dal momento che non potevo sulla versione minificata). A questo punto il codice era direttamente nell'intestazione, quindi rimosso lo .min dallo script, fatto un aggiornamento e TA-DA: Tutto ora funziona senza intoppi.

Se provo a spostare la dichiarazione di script unminified torna alla funzione my_scripts() utilizzando wp_register_script & wp_enqueue_script fallirà di nuovo. Se provo a spostare la dichiarazione script non terminata nel piè di pagina, fallirà di nuovo. Non ho provato una copia locale al momento, solo le versioni CDN.

È lo stesso errore SCRIPT5 ma sfortunatamente non ho il codice generato dall'errore. Questo è stato in ufficio l'altro giorno e sono fuori per il fine settimana. Ho tentato di riprodurre gli eventi sulla mia sandbox personale ma non sono riuscito a ricreare l'errore, il che mi porta a credere che qualcosa di non elencato possa essere il colpevole.

Qualcuno ha idea di cosa sta succedendo qui? Perché jquery.min non dovrebbe riuscire dove il file non terminato non lo farebbe? E perché il file non terminato continuerà a fallire a meno che non sia direttamente nello <head>?

Felice di fornire ulteriori informazioni, anche se alcune potrebbero dover aspettare fino al mio ritorno al lavoro questa settimana. Appena sarò in grado cercherò di ottenere il resto del codice pubblicato.

+0

puoi forse mostrare il vero output del browser della sezione head? –

+0

Purtroppo non al momento. È un progetto correlato al lavoro. Sono fuori sede e non avrò accesso per alcuni giorni per ottenere ulteriori dettagli sulla comunità. Ho provato a migliorare la domanda un po ', ma non sono sicuro di quanto possa aiutare per il momento. – voodooGQ

+0

Sto riscontrando un problema simile ma solo sul mio sito Live (www.riiviva.com): il dispositivo di scorrimento principale non verrà caricato quando in IE9. Ma caricherò in IE9 + compatibilità. – Wallter

risposta

20

Ho avuto lo stesso problema, jQuery 1.8.1 risolto questo problema per me

+2

grazie mille - non ho nemmeno notato l'aggiornamento di jQ ​​fino a vedere il tuo post. salvato la mia giornata! –

+0

Sì, l'ho fatto! Grazie Axel! – voodooGQ

+1

Ho trascorso circa 8 ore cercando di eseguire il debug delle chiamate AJAX e tutto il resto. Stavo per ricorrere al passaggio a jsonp come _everyone else_ suggerito ... fino a quando ho trovato questo! Wow, tutto ciò funziona ed è stato davvero solo uno stupido bug jQuery. Grazie! ** Nota **: jQuery 1.8.3 funziona anche. –

2

Per qualche ragione, la risposta @ Axel non ha funzionato per me.Invece ho deciso di ospitare il file sullo stesso server dei miei file HTML e l'ho risolto (almeno per me)

Problemi correlati