Posts filed under 'Bookmarklets'

Debug JS con Firebug anche su IE

Firebug è un’extension per Firefox FONDAMENTALE per gli sviluppatori web. Oltre ad essere il JavaScript debugger definitivo, se usato con astuzia fornisce alcune chicche come la possibilità di salvare facilmente le immagini che normalmente non si possono salvare tramite click destro.

Lo uso da quando è nato, ma solo ora mi sono deciso a dedicargli due righe perchè sono appena imbattuto nel classico uovo di colombo: grazie ad un bookmarklet, è possibile usare la versione Lite anche su Internet Explorer. Ecco come:

http://www.phpied.com/firebug-console-for-ie

Add comment 13 Settembre 2007

Dichiarare ed eseguire funzioni anonime

Se avete una profonda conoscenza di javascript, o avete lavorato con qualche framework javascript, vi sarete sicuramente imbattuti nelle funzioni anonime, che tornano molto utili quando si realizza un bookmarklet, quando si vuole realizzare codice non intrusivo, quando si ha a che fare con Ajax. Cosa sono? Vediamo un esempio. Realizziamo un link che apra Google in una nuova finestra, ma immaginiamo di poter usare solo “href”.

ESEMPIO 1

<a href=”javascript:window.open(‘http://www.google.it’,'_blank’);”>Apri Google Italia</a>

COMMENTO 1

L’esempio 1 non funziona bene: apre la nuova pagina correttamente, ma la pagina “madre” viene sostituita dalla scritta “[object]“. Questo perchè la funzione window.open() restituisce un oggetto corrispondente alla finestra aperta e lo assegna all’href del link.

ESEMPIO 2

<script>
function apriGoogleIt(){
window.open(‘http://www.google.it’,'_blank’);
}
</script>
<a href=”javascript:apriGoogleIt();”>Apri Google Italia</a>

COMMENTO 2

L’esempio 2 funziona. L’istruzione window.open() restituisce sempre il solito oggetto, ma stavolta non può assegnarlo a nessuno. Ma se la funzione apriGoogleIt esistesse già? Si può usare una funzione anonima, che non necessita cioè del nome “apriGoogleIt”.

ESEMPIO 3

<a href=”javascript:function(){window.open(‘http://www.google.it’,'_blank’)}”>Apri Google Italia</a>

COMMENTO 3

L’esempio 3 non funziona: viene correttamente dichiarata una funzione anonima (è sparito il nome “apriGoogleIt”), ma non viene ancora eseguita.

ESEMPIO 4

<a href=”javascript:(function(){window.open(‘http://www.google.it’,'_blank’)})()”>Apri Google Italia</a>

COMMENTO 4

L’esempio 4 funziona. Il trucco è dichiarare la funzione tra parentesi tonde, aggiungendo alla fine una parentesi aperta e una chiusa.

Add comment 26 Luglio 2007


Mephit

Mephit logo
PHP project for D&D players www.mephit.it

Documentazione

Motori di ricerca

Utility

Categorie

Meta

Archivi