Come sempre Internet Explorer tortura sviluppatori e utenti fino all’ultimo con messaggi incomprensibili ed errori senza senso.
Questa è la volta dell’errore numero 80004004, la documentazione della Microsoft è carente sulle cause anche perché questo errore sembra essere attribuibile a più tipi di problema.
Il bug affligge le seguenti versioni di Internet Explorer, che sono praticamente tutte quelle degli ultimi dieci anni e passa:
- Microsoft Internet Explorer 3.0
- Microsoft Internet Explorer 3.01
- Microsoft Internet Explorer 3.02
- Microsoft Internet Explorer 4.0 128-Bit Edition
- Microsoft Internet Explorer 4.01 Service Pack 2
- Microsoft Internet Explorer 4.01 Service Pack 1
- Microsoft Internet Explorer 4.01 Service Pack 2
- Microsoft Internet Explorer 5.0
- Microsoft Internet Explorer 5.01
- Microsoft Internet Explorer 5.5
- Microsoft Visual Basic, Scripting Edition 4.0
- Microsoft Visual Basic, Scripting Edition 5.0
- Microsoft JScript 4.0
- Microsoft JScript 5.0
- Microsoft Visual Basic 6.0 Learning Edition
- Microsoft Visual Basic 6.0 Professional Edition
- Microsoft Visual Basic 6.0 Enterprise Edition
- Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 3
A volte la Microsoft lo attribuisce a Visual Basic, altre volte al suo Java Script, altre volte ad ActiveX; io credo invece che il problema riguardi una libreria in comune tra questi linguaggi.
In particolare, nello sviluppo web, il problema nasce dal fatto di cercare un elemento contenuto in una tabella o in un DIV nello stesso punto in cui si trova questo elemento.
L’errore viene generato con uno script del genere:
...<table> <tr> <td> <div id="foo" class="bar">foobar</div> <script language="javascript"> var obj = document.getElementById('foo'); var classes = obj.getAttribute('class'); </script> </td> </tr>...
Come si può vedere lo script è contenuto ed eseguito all’interno della stessa cella e tabella dell’elemento da cercare, questo solleva l’errore.
Attenzione a chi usa le API di Google, in particolare Google Maps, molte persone hanno riscontrato lo stesso errore senza aver trovato una soluzione (quella che ho appena suggerito). E’ per tale problema che Google consiglia di caricare gli script con un <body onload=”…”>, anche se in alcuni casi questo non è proprio possibile.
Per risolvere è sufficiente lasciare chiudere la tabella eseguendo lo script al termine della pagina. Nel caso in cui non si possa trovare un’alternativa il problema ricade ancora una volta sulle spalle dello sviluppatore che dovrà eliminare una funzionalità del proprio sito a svantaggio dell’utente. Grazie Microsoft…
PS: in alcuni casi l’errore non viene segnalato esplicitamente da Internet Explorer, bisogna provare con un’altra versione del browser o da un’altra macchina.
Grande, ottimo suggerimento! Avevo un problema sia su IE 6 che sul 7, è bastato spostare il tag script con dentro la funzione di modifica della tabella a fondo pagina (fuori dalla tabella) e non ha più dato problemi!
Lieto di esserti stato di aiuto
Ciao davide, ho un problema simile sul mio sito: http://www.comisonews.com. Potresti darmi una mano?
Grazie mille
Luca, potresti essere più preciso?
Ho risolto…il problema era dato da un componente di joomla. Grazie!
ciao Davide, sono Emeli. ho questo l'errore 80004004 quando cerco di installare windows live messenger. purtroppo il mio pc è stato formattato per via di un virus. da allora non riesco più ad installare nulla. nemmeno Incredibilmail. puoi aiutarmi perfavore??? NON SO PIù COME COMPORTARMI. Da premettere che ho provato di tutto, anche sbloccando il popup e il firewall, ma niente non ha funzionato… AIUTAMI…….
il mio computer mentre naviga si blocca e viene fuori errore e poi come maifaccio fatica a tornare sul sito
L’errore 80004004 riguarda i programmatori di siti web, non gli utenti dei siti.
Emeli e Martina, gli errori che avete possono essere risolti solo chiamando un tecnico a riparare il vostro computer.