Login

           | 

Cerca nel sito...

Ricerca personalizzata

Segnala il sito

Segnala a: Mr. Wong Segnala a: Webnews Segnala a: Icio Segnala a: Oneview Segnala a: Kledy.de Social Bookmarking Segnala a:  FAV!T Social Bookmarking Segnala a: Favoriten.de Segnala a: Seekxl Segnala a: Social Bookmark Portal Segnala a: BoniTrust Segnala a: Power-Oldie Segnala a: Bookmarks.cc Segnala a: Newskick Segnala a: Newsider Segnala a: Linksilo Segnala a: Readster Segnala a: Yigg Segnala a: Linkarena Segnala a: Digg Segnala a: Del.icoi.us Segnala a: Reddit Segnala a: Jumptags Segnala a: Upchuckr Segnala a: Simpy Segnala a: StumbleUpon Segnala a: Slashdot Segnala a: Netscape Segnala a: Furl Segnala a: Yahoo Segnala a: Blogmarks Segnala a: Diigo Segnala a: Technorati Segnala a: Newsvine Segnala a: Blinkbits Segnala a: Ma.Gnolia Segnala a: Smarking Segnala a: Netvouz Segnala a: Folkd Segnala a: Spurl Segnala a: Google Segnala a: Blinklist Information
Social Bookmarking
Banner
Hello, unfortunately not all of the site is translated into English, or is poorly translated. I apologize and ask you to help me. Notify errors, send me translations, together we will build a free service certainly helpful to many!
Impossibile accedere a Joomla dopo il login PDF Stampa E-mail
Valutazione attuale: / 8
ScarsoOttimo 
Scritto da Massimiliano Pasqualoni   
Giovedì 03 Aprile 2008 12:21
Sample ImageIn un sito Joomla 1.5.2 su cui sto lavorando è impossibile accedere con Internet Explorer alla homepage dopo il login. Il browser restituisce l'errore "Impossibile aprire il sito. Operazione terminata" e chiude la connessione.
Il problema sembra essere un baco che IE si porta dietro dalla versione 5.5 e che il buon Roberto Cancelli della PiccoloMoscio non si è mai preoccupato di risolvere.Purtroppo in alcune particolari condizioni il codice di Joomla incappa in questo bug e rende impossibile la navigazione all'interno del sito.

Vediamo insieme come risolvere.

Il problema consiste in una anomalia della gestione delle chiamate DOM, in pratica IE non si preoccupa minimamente di controllare le chiamate DOMReady, quindi tali chiamate vengono eseguite istantaneamente.
In pratica se dobbiamo lanciare uno script il prima possibile, senza attendere il caricamento completo di tutti gli oggetti della pagina dovremmo sostituire la chiamata window.onload() con window.addEvent(’domready’).
In questo modo potremmo, ad esempio, lanciare un menù java senza attendere il completo caricamento di tutte le immagini in una homepage, cosa molto utile specie se si usa una connessione non proprio velocissima.

Joomla in questo modo carica Mootools, un framework javascript per abilitare gli effetti Web 2.0.

Come dicevo prima IE non ha un controllo delle chiamate DOM, quindi se si cerca di eseguire una chiamata che modifica un tag prima che esso sia chiuso, IE se la prende male e e non ci parla più, impedendoci di vedere il sito che desideriamo navigare.

Sull'articolo KB927917 Microsoft spiega la causa di questo problema con uno scioglilingua:

Questo problema si verifica perché un elemento contenitore di figlio HTML contiene il codice di script che si tenta che modifica l'elemento contenitore di padre dei figli contenitori. Si tenta il codice di script che modifica l'elemento contenitore di padre utilizzando il metodo innerHTML o il metodo appendChild.

Comunque il consiglio che da è di non inserire codice JS che modifichi un tag fino a quando lo stesso tag non è stato chiuso.

Ok, chi spiega a Microsoft che se sto usando un CMS complesso come Joomla non posso riscrivermi centinaia di pagine di codice?


A questo punto dovremmo trovare una soluzione alternativa.

Purtroppo per chi usa IE l'unico modo per far funzionare un DOM è attendere il completo caricamento della pagina e di tutti i suoi oggetti.

Negli Headers della homepage di Joomla possiamo trovare, poco sopra la chiusura dell'headers stesso:


window.addEvent('domready', function(){ var JTooltips = new Tips($$('.hasTip'), { maxTitleChars: 50, fixed: false}); })

Dovremmo sostituire questa stringa con

var load_method = (window.ie ? 'load' : 'domready');
window.addEvent(load_method, function(){ var JTooltips = new Tips($$('.hasTip'), { maxTitleChars: 50, fixed: false}); });


Ovvero, controlla se il browser è IE, se si allora esegui il domready al caricamento della pagina.

Non è una cosa piacevole per quanti usano Internet Explorer, navigano su siti con molte immagini ed hanno una connessione lenta, ma che dire...
Forse è il caso di passare ad altri browser?

Bene, per modificare questa stringa html dobbiamo modificare la funzione che la genera.
Essa si trova nel file /libraries/joomla/html/html/behavoir.php, esattamente alla riga 108 di tale file incluso con la versione 1.5.2 di Joomla, troviamo:

$tooltipInit = ' window.addEvent(\'domready\', function(){ var JTooltips = new Tips($$(\''.$selector.'\'), '.$options.'); });';

Mettiamo un bel // davanti alla riga per commentarla e sostituiamola con
$tooltipInit = ' var load_method = (window.ie ? \'load\' : \'domready\');'
.'window.addEvent(load_method, function()'
.'{ var JTooltips = new Tips($$(\''.$selector.'\'), '.$options.'); });';

Salviamo, cancelliamo la cache di IE e ricarichiamo la homepage, eseguiamo il login e, come per magina, la pagina si apre senza problemi!

La vita è un continuo mettersi in discussione, trovare i propri limiti ed affrontarli, io ogni giorno ne trovo almeno 3 e tutti portano a prodotti Microsoft. Sono contento che esistono tutti questi bachi, altrimenti rischierei di perdere parecchia elasticità mentale!
Ultimo aggiornamento Lunedì 16 Novembre 2009 15:10
 
Altri Articoli :

» Eliminare invio email fantasma da outlook

A volte capita di avere dei messaggi invisibili inuscita che non riescono ad esser spediti perchè vengono rifiutati dai server.Quasi sicuramente si tratta di conferme di lettura di alcuni messaggi che abbiamo letto e che vengono generate...

» Insersioni Pubblicitarie

Ciao, se vuoi pubblicare le tue insersioni pubblicitarie su questo sito, , cercheremo di capire quale forma di pubblicità si adatta di più alle tue esigenze! 

» Disabilitare anteprima file su risorse di rete

Siete nel dubbio se tenere o meno le anteprime dei file?E' vero, sono belle, in locale, ed aiutano a capire che cosa stiamo vedendo, senza doverlo aprire.Ma è anche vero che se lavoriamo in rete sono un supplizio!7 si pianta sulle connessioni...

» Come soccorrere un notebook dopo averci versato sopra dell'acqua.

Gli incidenti capitano.Accade più spesso di quanto si possa credere, ma tanti versano accidentalmente i più disparati tipi di liquidi sui loro computer. Spesso si tratta di sostanze zuccherine,come la cola o caffè, ancora più spesso si tratta di...

» Permessi su file Mysql in Ubuntu

Sono da poco tornato ad ubuntu sul mio portatile.Oggi ho avuto la necessità di riprendere una vecchia installazione di Joomla sulla macchina locale per controllare un componente sviluppato. Ho estratto dallo zip di backup la cartella di Joomla in...
RocketTheme Joomla Templates