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.
puoi forse mostrare il vero output del browser della sezione head? –
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
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