Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Script per emoticons su blogspot

Cerchi consigli per migliorare il tuo sito? Vuoi aprire un sito in poco tempo?
Discuti con altri webmaster, chiedi chiarimenti ed opinioni in tutta libertà.
Lo spam verrà cancellato.

Script per emoticons su blogspot

Messaggioda Mr.TFM » dom giu 29, 2008 3:47 pm

Premettendo che non capisco una mazza di javascript (e voi direte chicca**otelofaffare? [:D] ) , ho trovato sul web uno script per gli emoticons nei post di blogspot....

Siccome gli emoticon usati fanno un po' schifo, e siccome sono il lord delle emoticon di MegaLab (o almeno lo ero [sh] ) ho scaricato lo script, e l'ho modificato, inserendo immagini diverse.....
Il risultato ottenuto è questo:
Codice: Seleziona tutto
function replaceText() {

bodyText = document.getElementById("body");
theText = bodyText.innerHTML;
theText = theText.replace(/:-\)/gi,'<img src="http://bp3.blogger.com/_DyqCr3kM_7A/SGeMUxhrhDI/AAAAAAAAAJA/-iXcsxo2Amw/s1600-h/01.png" alt=":-)" />');
theText = theText.replace(/:\)/gi,'<img src="http://bp3.blogger.com/_DyqCr3kM_7A/SGeMUxhrhDI/AAAAAAAAAJA/-iXcsxo2Amw/s1600-h/01.png" alt=":)" />');
theText = theText.replace(/:-\(/gi,'<img src="http://bp3.blogger.com/_DyqCr3kM_7A/SGeMXmdUo4I/AAAAAAAAAJI/QE9Su2IhbK8/s1600-h/02.png" alt=":-(" />');
theText = theText.replace(/:\(/gi,'<img src="http://bp3.blogger.com/_DyqCr3kM_7A/SGeMXmdUo4I/AAAAAAAAAJI/QE9Su2IhbK8/s1600-h/02.png" alt=":(" />');
theText = theText.replace(/;\)/gi,'<img src="http://bp0.blogger.com/_DyqCr3kM_7A/SGeMZiqZrFI/AAAAAAAAAJQ/t1fNV1My-Lc/s1600-h/03.png" alt=";)" />');
theText = theText.replace(/;-\)/gi,'<img src="http://bp0.blogger.com/_DyqCr3kM_7A/SGeMZiqZrFI/AAAAAAAAAJQ/t1fNV1My-Lc/s1600-h/03.png" alt=";-)" />');
theText = theText.replace(/:D/gi,'<img src="http://bp2.blogger.com/_DyqCr3kM_7A/SGeMbX44eLI/AAAAAAAAAJY/KOmS2NJDZWo/s1600-h/04.png" alt=":D" />');
theText = theText.replace(/:-D/gi,'<img src="http://bp2.blogger.com/_DyqCr3kM_7A/SGeMbX44eLI/AAAAAAAAAJY/KOmS2NJDZWo/s1600-h/04.png" alt=":-D" />');
theText = theText.replace(/:p/gi,'<img src="http://bp2.blogger.com/_DyqCr3kM_7A/SGeMjz7yGoI/AAAAAAAAAKA/p_jQL3CepGA/s1600-h/09.png" alt=":p" />');
theText = theText.replace(/:-p/gi,'<img src="http://bp2.blogger.com/_DyqCr3kM_7A/SGeMjz7yGoI/AAAAAAAAAKA/p_jQL3CepGA/s1600-h/09.png" alt=":-p" />');
theText = theText.replace(/:o/gi,'<img src="http://bp1.blogger.com/_DyqCr3kM_7A/SGeMhtAW0VI/AAAAAAAAAJ4/BIO1AW52m6Q/s1600-h/08.png" alt=":o" />');
theText = theText.replace(/:-o/gi,'<img src="http://bp1.blogger.com/_DyqCr3kM_7A/SGeMhtAW0VI/AAAAAAAAAJ4/BIO1AW52m6Q/s1600-h/08.png" alt=":-o" />');
theText = theText.replace(/8-\)/gi,'<img src="http://bp1.blogger.com/_DyqCr3kM_7A/SGeMmtJe-_I/AAAAAAAAAKI/Rk4LZ5RjOGM/s1600-h/10.png" alt="cool" />');
theText = theText.replace(/8\)/gi,'<img src="http://bp1.blogger.com/_DyqCr3kM_7A/SGeMmtJe-_I/AAAAAAAAAKI/Rk4LZ5RjOGM/s1600-h/10.png" alt="cool" />');
theText = theText.replace(/:\|/g,'<img src="http://bp1.blogger.com/_DyqCr3kM_7A/SGeMoq1OeOI/AAAAAAAAAKQ/BUtUkivNPxU/s1600-h/11.png" alt=":|" />');
theText = theText.replace(/:-\|/g,'<img src="http://bp1.blogger.com/_DyqCr3kM_7A/SGeMoq1OeOI/AAAAAAAAAKQ/BUtUkivNPxU/s1600-h/11.png" alt=":-|" />');
theText = theText.replace(/fff)/gi,'<img src="http://bp1.blogger.com/_DyqCr3kM_7A/SGeMeeJb9FI/AAAAAAAAAJo/FgGnidSehRE/s1600-h/06.png" alt="vomitino" />');
theText = theText.replace(/argh)/gi,'<img src="http://bp2.blogger.com/_DyqCr3kM_7A/SGeMfmJb6CI/AAAAAAAAAJw/QwuWzeLoWFY/s1600-h/07.png" alt="argh" />');
theText = theText.replace(/devil)/gi,'<img src="http://bp2.blogger.com/_DyqCr3kM_7A/SGeMdJgtfWI/AAAAAAAAAJg/E7kj3BiEf_I/s1600-h/05.png" alt="devil" />');


bodyText.innerHTML = theText;

}

Lo script l'ho caricato qui...
http://www.webalice.it/matteo_terzago/script/smiley.js

Ho fatto le modifiche al template come spiegato in quel post (correggendolo), ma non funziona.... [...]

Codice: Seleziona tutto
<script type="text/javascript" src="http://www.webalice.it/matteo_terzago/script/smiley.js"></script>


Dov'è l'errore?
Lo script è fatto male?
Il link allo script non va bene? [boh]
Lo script non è compatibile con l'ultima versione di blogspot? [uhm]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Mr.TFM » lun giu 30, 2008 4:12 pm

Nessuno mi dice che devo studiarmi javascript? [fischio]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda eDog » lun giu 30, 2008 4:20 pm

Mr.TFM ha scritto:Nessuno mi dice che devo studiarmi javascript? [fischio]



http://javascript.html.it [bleh]
eDog,
"È meglio essere temuti o rispettati? Io dico: è troppo chiedere entrambe le cose?" - Tony Stark
Avatar utente
eDog
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3679
Iscritto il: sab dic 30, 2006 7:58 pm
Località: Vescovana (Padova)


Messaggioda Rumez » lun giu 30, 2008 4:24 pm

puoi darmi l'indirizzo della pagina dove viene incluso quel js? (la pagina dove si inseriscono gli emoticons in pratica) così posso fare un po' di debug e vedere qualcosa in più..perché così scritto sembrerebbe corretto il tuo js
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda ssjx » lun giu 30, 2008 5:58 pm

Non ho mai studiato JS ma, ad occhio (ovvero come sono sopravvissuto sino ad oggi e con discreti risultati), a me pare tutto OK nella sintassi [uhm]

magari per le prove però io ti consiglio di ridurre tutto al minimo (meno probabilità di magagne, più facile individuazione errori)... una emoticon va più che bene per le prove [;)]
Usavo IE e mi lamentavo... usavo Mozilla e mi lamentavo, decisamente meno ma mi lamentavo, ... poi ho trovato Opera e fu amore a prima vista
Avatar utente
ssjx
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5756
Iscritto il: ven nov 26, 2004 3:37 pm
Località: Barcellona

Messaggioda Mr.TFM » lun giu 30, 2008 10:48 pm

Rumez ha scritto:puoi darmi l'indirizzo della pagina dove viene incluso quel js? (la pagina dove si inseriscono gli emoticons in pratica) così posso fare un po' di debug e vedere qualcosa in più..perché così scritto sembrerebbe corretto il tuo js
Sul mio blog...

Ho fatto anche un debug con Web Inspector (incluso in Webkit e Safari)
E l'unico errore riscontrato è questo:

Immagine

Ho provato anche in questa pagina dove c'è un emoticon che dovrebbe essere richiamato così :-)

In particolare, mentre scrivevo, anzi, modificavo il codice mi sorgevano dei seri dubbi su questa parte....
Codice: Seleziona tutto
theText.replace(/:-\)/gi,


Cioè, tra parentesi dopo theText.replace non ndovrebbe essereci scitto il codice che richiama l'emoticon? E poi non capisco perché a volte c'è la parentesi chiusa, e perché a volte finisce con "gi" e altre con "g".......

L'ignoranza, sapete....... [:-H]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Rumez » mar lug 01, 2008 8:31 am

sto facendo delle prove..attualmente ho scoperto che lo script js va in errore in queste 3 righe:
Codice: Seleziona tutto
theText = theText.replace(/fff)/gi,'<img src="http://bp1.blogger.com/_DyqCr3kM_7A/SGeMeeJb9FI/AAAAAAAAAJo/FgGnidSehRE/s1600-h/06.png" alt="vomitino" />');
theText = theText.replace(/argh)/gi,'<img src="http://bp2.blogger.com/_DyqCr3kM_7A/SGeMfmJb6CI/AAAAAAAAAJw/QwuWzeLoWFY/s1600-h/07.png" alt="argh" />');
theText = theText.replace(/devil)/gi,'<img src="http://bp2.blogger.com/_DyqCr3kM_7A/SGeMdJgtfWI/AAAAAAAAAJg/E7kj3BiEf_I/s1600-h/05.png" alt="devil" />');


fai una prova eliminandole per vedere se le altre faccine funzionano..io intanto vedo di capirne di più

ps:

/g vuol dire che viene fatto un replace globale ovvero che vengono cambiate tutte le occorrenze dell'intero documento

/gi vuol dire che fa la sostituzione globale utilizzando il metodo key insensitive nel senso che scirvere Mr.TFM o mr.tfm è la stessa cosa e verrà rimpiazzato comunque indipendentemente dalla presenza di maiuscole
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda Rumez » mar lug 01, 2008 8:44 am

ok ci sono..

fai come segue:

[nota] sostituisci tutti i /g con /gi così sei sicuro che fai il replace sull'intera pagina di tutte le occorrenze ignorando il key sensitive

[nota] nelle tre 3righe finali ci sono delle parentesi tonde di troppo
questo:
Codice: Seleziona tutto
theText = theText.replace(/fff)/gi....


deve diventare questo:
Codice: Seleziona tutto
theText = theText.replace(/fff/gi


[^]

un'ultima cosa che sicuramente non ti torna..avrai sicuramente notato che le le parentesi "sembrano" utilizzate in maniera strana..questo perché i caratteri '(' e ')' sono dei caratteri speciali. Essi in genere racchiudono al loro interno delle istruzioni..ma se queste istruzioni dovessero avere al loro interno proprio dei caratteri ')'? ad esempio nel caso della faccina :-) ?

in questi casi si usano delle notazioni particolari ovvero davanti ai caratteri speciali ci si mette un bel '\' e il gioco è fatto.

Ti faccio un esempio che è più semplice:

la faccina :-) andrà inserita nel codice js in questo modo: :-\) e analogamente la faccina :-( andrà inserita così: :-\(

altro carattere speciale è lo stesso '\' quindi la faccina :-\ dovrà essere inserita così: :-\\
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda Mr.TFM » mar lug 01, 2008 10:50 am

Ecco, ma nel caso di (/fff) perché non si conclude con una parentesi chiusa, visto che non ci sono caratteri speciali? [uhm]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Rumez » mar lug 01, 2008 10:52 am

perché la sintassi del comando replace è:

(/stringa da ricercare/,"stringa da sostituire")

quindi la parentesi dopo fff non ci va..

negli altri casi c'è semplicemente perché fa parte della faccina
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda Mr.TFM » mar lug 01, 2008 10:59 am

Ehm ora che è tutto chiaro, Huston, abbiamo un problema..........
Lo script in qualche modo blocca le immagini....

Non capisco perché non carichi gli emoticon, e le immagini che ho carticato sul blog......... [V]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Rumez » mar lug 01, 2008 11:02 am

infatti avevo notato pure io che non visualizza l'immagine e mostra il contenuto della proprietà alt. pensavo fosse qualcosa riguardante dei permessi.

mi pare siano pochi gli emoticon non puoi provare a carticarli su web alice?
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda Mr.TFM » mar lug 01, 2008 11:10 am

Rumez ha scritto:infatti avevo notato pure io che non visualizza l'immagine e mostra il contenuto della proprietà alt. pensavo fosse qualcosa riguardante dei permessi.

mi pare siano pochi gli emoticon non puoi provare a carticarli su web alice?
Sì certo, ma cambia poi qualcosa? [uhm]
Io intanto procedo, e elimino anche la stringa

Codice: Seleziona tutto
theText = theText.replace(/8\)/gi,'<img src="http://bp1.blogger.com/_DyqCr3kM_7A/SGeMmtJe-_I/AAAAAAAAAKI/Rk4LZ5RjOGM/s1600-h/10.png" alt="cool" />');

perché mi manda a quel paese il contatore dei tags con quell'8).... [fischio]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Mr.TFM » mar lug 01, 2008 11:23 am

Ora gli emoticon funzionano (sono caricati su webalice) ma le altre immagini sono andate a ramengo............ [acc2]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Rumez » mar lug 01, 2008 11:25 am

quali altre immagini?
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda Mr.TFM » mar lug 01, 2008 11:31 am

Queste:
Immagine
Immagine
Immagine
Eccetera eccetera eccetera......

Però le emoticons funzionano tutte bene.... [boh]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Mr.TFM » mar lug 01, 2008 11:34 am

Doh!
Su Safari lo fa, ma su Firefox no......... [...]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Mr.TFM » mar lug 01, 2008 11:56 am

Ho trovato l'errore...

Da pochi giorni è cambiato blogger e l'editor dei post...
(quello nuovo è una schifezza)

Ad ogni modo non capivo perché nel post di ieri sera l'immagine si vedesse, e in quelli vecchi no.

Poi mi sono ricordato che era cambiato l'editor, e sono andato a confrontare i due codici...

Morale della favola, il vecchio editor caricava le immagini in questo modo.....
Codice: Seleziona tutto
<a href="http://bp0.blogger.com/_DyqCr3kM_7A/SGD7rFH6y4I/AAAAAAAAAI4/MElaySyummQ/s1600-h/Cevoli.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_DyqCr3kM_7A/SGD7rFH6y4I/AAAAAAAAAI4/MElaySyummQ/s200/Cevoli.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5215445086023371650" /></a>


Insomma, l'errore, eccolo qua:
cursor:pointer;


Safari e Opera che sono pignoli, non sanno se caricare l'emoticon, o l'immagine, quindi fanno casino, Firefox, se ne frega del ":p" e carica l'immagine giusta...

Ora però posso provare a togliere la stringhetta relativa dal javascript

Codice: Seleziona tutto
theText = theText.replace(/:p/gi,'<img src="http://www.webalice.it/matteo_terzago/script/Smiley/09.png" alt=":p" />');


Oppure trovare un escamotage........... [fischio]
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Mr.TFM » mar lug 01, 2008 12:14 pm

[cry+] [cry+] [cry+] [cry+]

Ma che cacchio!!!!!!

Ora è successo questo...

Immagine

(ho solo cancellato la stringa)

Codice: Seleziona tutto
theText = theText.replace(/:p/gi,'<img src="http://www.webalice.it/matteo_terzago/script/Smiley/09.png" alt=":p" />');
MegaLab è una potentissima droga virtuale.
"Nella setta del Codice Macintosh si può entrare, ma non se ne può uscire." V. ZUCCONI
Avatar utente
Mr.TFM
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 23387
Iscritto il: gio mar 18, 2004 11:46 am
Località: Livorno Ferraris (Vercelli)

Messaggioda Rumez » mar lug 01, 2008 1:35 pm

calma e sangue freddo [:D]


allora la questione è questa:

nell'istruzione cursor:pointer il javascript trova la stringa cursor:pointer ovvero la faccina con la linguetta fuori e ci faceva il replace con un emoticon con il risultato che l'html si rompeva e non vedevi più correttamente le imamgini.

Le cose da fare sono 3:
1) non metti il cursor:pointer tanto i collegamenti mettono in automatico la mano con l'indice al posto della freccetta sopra i link

2) metti cursor: pointer con un balnk in mezzo

3) usi dei tag particolari per le tue faccine, tanto te li puoi creare tu..mi viene in mente una cosa tipo bbcode [:-\)] oppure [fff]
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Prossimo

Torna a Sviluppo Web

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

cron
Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising