Utilizzando la libreria Highcharts ho avuto la necessità di non dover stampare i valori 0 (zero) all’interno dei dataLabels, quindi documentandomi un po’ sono arrivato alla soluzione agendo sul parametro formatter:

1
2
3
4
5
6
7
8
9
dataLabels: {
    formatter: function() {
        if (this.y == 0) {
            return "";
        } else {
            return this.y;
        }
    }
}

Highcharts

Ultimamente mi è stato chiesto di far funzionare lo scorrimento delle immagini su Shadowbox anche quando viene cliccata l’immagine corrente. Ho cercato in vari forum e tutti suggerivano di modificare in vari modi i sorgenti di Shadowbox ma questo metodo non mi convinceva molto, se domani aggiornano il js? Meglio procedere diversamente.

Consultando la documentazione ufficiale di Shadowbox ho scoperto che esiste l’opzione onOpen, quindi aggiungendo una riga di jQuery ho ottenuto quello che volevo senza modificare in nessun modo il sorgente.

Il codice funzionante è il seguente:

1
2
3
4
5
6
7
Shadowbox.init({
    modal: true,
    continuous: true,
    onOpen: function(galleryElement) {
        $("#sb-body-inner").attr("onclick","Shadowbox.next()");
    }
});

Oggi ero alle prese con una procedura PHP, Ajax, Javascript e di tutto un po’ e clamorosamente sono caduto in un vuoto di memoria… come faccio a chiamare una funziona javascript che è nella pagina principale da dentro un iFrame…? L’avrò fatto un milione di volte ma questa mattina proprio ci stavo diventando matto!

Ho fatto tutte le prove anche le più stupide e dopo una decina di errori segnalati dal fido FireBug ecco la soluzione!

top.NomeFunzione();

Niente di più semplice :-)

Molto spesso mi capita di dover lavorare dinamicamente sul puntamento agli oggetti in javascript e spesso si presenta la necessità di dover “costruire” il nome di un oggetto concatenando più variabili.

Nel più semplice dei casi la cosa migliore da fare è la seguente: document.getElementById(ID), dove ID è la variabile dinamica; in altri casi invece le cose si complicano come nell’ell’esempio seguente, che ovviamente non funziona: document.forms[MyForm].MyObject.options[ID].selected = true.

Allora bisogna scrivere il puntamento all’oggetto come valore stringa di una variabile…

var Obj = “document.forms["+MyForm+"].”+MyObject+”.options["+ID+"].selected = true”;

… e collegarsi all’oggetto con l’istruzione…

eval(Obj);

Seguendo l’esempio, si seleziona un elemento option di una select.