Notizie: scarica ora l'ultima versione disponibile di Thunderbird!

Autore Topic: Doredirect e Firefox  (Letto 2160 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline zanna

  • Post: 4
Doredirect e Firefox
« il: 21 Agosto 2007 17:39:56 »
Mi capita una cosa strana con la funzione DoRedirect di JavaScript; Quando nell'URL sono presenti  delle ampersand, &, il reindirizzamento non funziona correttamente.
Il malfunzionamento non si verifica invece su IE 6, che interpreta correttamente l'url.

Questo il codice incriminato inserito in un XSL:

<script type="text/javascript">
   function doRedirect() {
            location.href = "<xsl:value-of select="@value" />";
               }
                                    setTimeout('doRedirect()',5000); //Fa partire il redirect dopo tot. secondi
</script>

Il bello è che il medesimo link viene intepretato correttamente dal browser cliccandoci sopra durante il timeout o disabilitando il js.

Visualizzando la sorgente HTML della pagina, entrambi i link sono formati correttamente con le amperland al posto delle &.

Avete delle idee??

Grazie!

PS Versione di FF 2.0.0.6
« Ultima modifica: 22 Agosto 2007 16:10:47 da zanna »

Offline zanna

  • Post: 4
Re: Doredirect e Firefox
« Risposta #1 il: 22 Agosto 2007 16:30:10 »
Aggiungo che il malfunzionamento non dipende dal sito che si visita; semplicemente nell'URL le ampersand scritte nel formato tipico dell'XSL (&amp;) vengono passate tal quali, senza trascrizione in semplici &; questo, a seconda del sito che si visita genera dei problemi (o non viene effettuata la query prevista sul DB - php -  oppure si ottiene un errore - jsp).
Segnalo questo link di prova http://www.provincia.biella.it/on-line/Home/scheda33403.html
dove il redir funziona, ma la query (ricerca solo delle foto risalenti al 1897) non viene eseguita e di conseguenza viene restituito tutto il contenuto del DB.

 :(
« Ultima modifica: 22 Agosto 2007 16:33:16 da zanna »

Offline lucasali

  • Moderatore
  • Post: 7493
Re: Doredirect e Firefox
« Risposta #2 il: 22 Agosto 2007 21:04:53 »
perché non scrivi il link come dovrebbe essere?

Offline zanna

  • Post: 4
Re: Doredirect e Firefox
« Risposta #3 il: 23 Agosto 2007 10:15:59 »
Perchè è un link che viene generato "al volo" dall'XSL sulla base del contenuto della trasformata XML, con tutti i caratteri speciali tipici di questo formato che poi il browser traduce. Infatti se vai a visualizzare il sorgente della pagina che ho linkato la cosa si nota. Probabilmente il problema è superabile scrivendo un pò di javascript - ci va perso un pò di tempo - ma mi fa specie che invece IE funzioni...  :?

Offline the fly on the net

  • Post: 297
    • the fly on the net
Re: Doredirect e Firefox
« Risposta #4 il: 30 Agosto 2007 14:43:11 »
Probabilmente il problema è superabile scrivendo un pò di javascript - ci va perso un pò di tempo - ma mi fa specie che invece IE funzioni...  :?

Credo che abbia ragione Firefox: le entity non vanno messe nei tag <script>, per cui correttamente Firefox le considera normale testo.

Il fatto che IE ti venga incontro fa parte del suo comportamento classico (e grazie a questo il web è stato riempito di errori). Tieni conto che ad esempio Opera si comporta esattamente con Firefox.

Senza impazzire nel creare funzioni che decodifichino le entity, posso consigliarti una possibile soluzione: dai un id univoco al link che segue lo script e accedi al valore dell'attributo href tramite il DOM. In questo modo avrai la stringa priva di entity.




Offline zanna

  • Post: 4
Re: Doredirect e Firefox
« Risposta #5 il: 31 Agosto 2007 00:25:18 »
 :) Ha funzionato! Grazie!

0 Utenti e 1 Visitatore stanno visualizzando questo topic.