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

Autore Topic: innerText (e onmouseenter) non funziona con Mozilla  (Letto 2935 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline lorem

  • Post: 13
innerText (e onmouseenter) non funziona con Mozilla
« il: 09 Giugno 2011 17:00:56 »
Il seguente codice funziona perfettamente su IE, Chrome e Opera, ma non con FF (versione 4.0).
Dopo indagine ho scoperto che lo statement fra le due righe di commento è la ragione.
Qualche suggerimento?
Grazie
Lorenzo

Codice: [Seleziona]
<script type="text/Javascript">
function contadoc2012()
{
 x = document.getElementById("dati-2012");
 ricerca = x.innerText;
 re = /_P_/g;
 // lo statement che segue non funziona in Mozilla 4.0.1
 result = ricerca.match(re);
// funziona con IE9, Chrome 12, Opera 11
   if (result != null)
   {
    contaprog = result.length;
   }
   else
   {
    contaprog = 0;
   }
 strContaprog = "<font face='Arial' size='1'><b> ; Programmi "+contaprog+"</b></font>";
 document.getElementById("prog-2012").innerHTML = strContaprog;
 x = document.getElementById("dati-2012");
 ricerca = x.innerText;
 re = /_L_/g ;
 result = ricerca.match(re);
 contaloc = result.length;
 strContaloc = "<font face='Arial' size='1'><b>Locandine "+contaloc+"</b></font>";  
 document.getElementById("loc-2012").innerHTML = strContaloc;
 contatutto = contaloc + contaprog;
 strContatutto = "<font face='Arial' size='1'><b> ; Totale "+contatutto+"</b></font>";
 document.getElementById("tot-2012").innerHTML = strContatutto;
 }
</script>
« Ultima modifica: 11 Giugno 2011 00:36:04 da gialloporpora »

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: match non funziona con Mozilla
« Risposta #1 il: 09 Giugno 2011 17:48:17 »
Non hai un esempio pratico?
Non mi sembra ci siano errori nella regex, tu hai errori nella console?

Offline lorem

  • Post: 13
Re: match non funziona con Mozilla
« Risposta #2 il: 09 Giugno 2011 18:01:25 »
Non volevo mettere troppo codice.
Di seguito tutto il paginone.
In IE, Chrome e Opera, passando il mouse sulla riga di fondo appaiono i numeri oggetto della match.
Grazie
Lorenzo


Edit by @gialloporpora: tolto il codice
« Ultima modifica: 09 Giugno 2011 18:39:18 da gialloporpora »

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: match non funziona con Mozilla
« Risposta #3 il: 09 Giugno 2011 18:34:12 »
No, io vorrei la pagina da visitare e testare, puoi metterla online?

Per il futuro, se vuoi inserire codice usa i tag code.

Offline lorem

  • Post: 13
Re: match non funziona con Mozilla
« Risposta #4 il: 09 Giugno 2011 18:54:52 »
No, io vorrei la pagina da visitare e testare, puoi metterla online?

Per il futuro, se vuoi inserire codice usa i tag code.


Chiedo scusa non sono familiare con questo forum. Il codice inserito è apribile in locale nei vari browser e funziona regolarmente, sempre salvo FF. Una pagina online, ma in produzione, che usa questo codice è http://www.navigliopiccolo.it/Locandine/tabid/55/Default.aspx.
Provo a rimettere il codice sperando di non causare danni.
Grazie
Lorenzo


Edit by gialloporpora: visto che il codice completo non è rilevante ai fini della comprensione del problema e che rende meno leggebile il posto l'ho rimosso
« Ultima modifica: 09 Giugno 2011 19:56:36 da gialloporpora »

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: match non funziona con Mozilla
« Risposta #5 il: 09 Giugno 2011 18:56:18 »
innerText non è standard e quindi Firefox non credo lo supporti

Offline lorem

  • Post: 13
Re: match non funziona con Mozilla
« Risposta #6 il: 09 Giugno 2011 19:02:50 »
innerText non è standard e quindi Firefox non credo lo supporti

Ho fatto un po' di debugging prima di fare questo post (inserito un alert appena dopo) e innerText non è il problema. Quello che non viene eseguito è match. Inserendo alert appena prima e dopo (al posto dei commenti) si conferma.
Grazie
Lorenzo

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: match non funziona con Mozilla
« Risposta #7 il: 09 Giugno 2011 19:04:50 »
Dopo

Codice: [Seleziona]
ricerca = x.innerText;
metti alert(ricerca), scommettiamo che è "undefined"?

Offline lorem

  • Post: 13
Re: match non funziona con Mozilla
« Risposta #8 il: 09 Giugno 2011 19:08:56 »
Chiedo scusa, hai ragione tu. Nel frattempo sono andato a riprovare e da proprio undefined.
Peccato che funzioni con il resto del mondo ...
Alternativa?
Grazie ancora
Lorenzo

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: match non funziona con Mozilla
« Risposta #9 il: 09 Giugno 2011 19:10:11 »
Ti serve solo di eliminare i tag, giusto?

Offline lorem

  • Post: 13
Re: match non funziona con Mozilla
« Risposta #10 il: 09 Giugno 2011 19:12:44 »
Direi di si, devo trovare delle stringhe predefinite nella parte testuale di tutto quello che c'è in quel dettaglio di riga.
Grazie
Lorenzo

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: match non funziona con Mozilla
« Risposta #11 il: 09 Giugno 2011 19:16:53 »
Cambia
Codice: [Seleziona]
ricerca = x.innerText;
con
Codice: [Seleziona]
ricerca = x.innerHTML.replace(/<[^>]+>/g, "");
Dovrebbe funzionare con tutti i browser ed è standard.

P.S. se ci sono delle "entità" all'interno del codice, devi convertirle con una regex ulteriore, vedi tu.
« Ultima modifica: 09 Giugno 2011 19:22:59 da klades »

Offline lorem

  • Post: 13
Re: innerText non funziona con Mozilla
« Risposta #12 il: 09 Giugno 2011 19:24:44 »
Perfetto!
Grazie mille
Lorenzo

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: innerText non funziona con Mozilla
« Risposta #13 il: 09 Giugno 2011 19:46:15 »
Sicuramente il metodo che ti ha suggerito @klades è migliore, comunque credo che l'analogo di innerText su Firefox sia textContent,  almeno io usavo quello per  ottenere il testo di un elemento HTML. Non so però se sia cross browser quindi sicuramente è meglio il codice di @klades.

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: innerText non funziona con Mozilla
« Risposta #14 il: 09 Giugno 2011 20:07:39 »
No gialloporpora hai ragione tu, non so perché pensavo che textContent non riportasse il contenuto anche dei nodi annidati.

Quindi dovrebbe andare bene anche

Codice: [Seleziona]
ricerca = x.innerText || x.textContent
« Ultima modifica: 09 Giugno 2011 20:11:21 da klades »

0 Utenti e 1 Visitatore stanno visualizzando questo topic.