jPrototype

jPrototype (jure’s Prototype) è la mia estensione di Prototype. Dato che mi servono spesso alcune funzioni che non sono presenti nell’API di Prototype, le ho aggiunte. E’ compatibile con Prototype 1.6 e superiori.

Estensioni del DOM

  • String.find( str )
    Ritorna TRUE se trova la stringa “str”, FALSE altrimenti.
  • String.zeroFill( n )
    Partendo da un numero, aggiunge tanti zeri finchè la lunghezza dell’a parte intera o della parte decimale n.
    Esempio: “5″.zeroFill() = “05″
    Esempio: “23″.zeroFill(5) = “00023″
    Esempio: “-12.3″.zeroFill(-3) = “-12.300″
    Esempio: “-12.75″.zeroFill(3) = “-012.75″
  • String.timestamp2date()
    Ritorna un oggetto Date ricavandolo da una stringa Timestamp.
    Esempio: “20071231235959″.timestamp2date() = “31 Dicembre 2007, ore 23:59:59″
  • String.trim()
    Ritorna la stringa senza spazi iniziali e finali.
  • String.upper()
    Ritorna la stringa in maiuscolo.
  • String.lower()
    Ritorna la stringa in minuscolo.
  • String.parseNumbers()
    Ritorna un array con tutti i numeri trovati nella stringa.
  • String.parseIntegers()
    Ritorna un array con tutti i numeri interi trovati nella stringa
  • String.parseIDs()
    Ritorna un array con tutti i i numeri interi positivi trovati nella stringa
  • String.parseEmails()
    Ritorna un array con tutti e le email trovati nella stringa
  • String.parseLinks()
    Ritorna un array con tutti i link trovati nella stringa
  • Number.next()
    Ritorna il numero successivo.
  • Number.prev()
    Ritorna il numero precedente.
  • Number.zeroFill( n )
    Aggiunge tanti zeri finchè la lunghezza dell’a parte intera o della parte decimale n.
    Esempio: (5).zeroFill() = “05″
    Esempio: (23).zeroFill(5) = “00023″
    Esempio: (-12.3).zeroFill(-3) = “-12.300″
    Esempio: (-12.75).zeroFill(3) = “-012.75″
  • Number.timestamp2date()
    Ritorna un oggetto Date ricavandolo da una stringa Timestamp.
    Esempio: (20071231235959).timestamp2date() = “31 Dicembre 2007, ore 23:59:59″
  • Date.toTimestamp()
    Ritorna una stringa Timestamp.
    Esempio: (31 Dicembre 2007, ore 23:59:59).toTimestamp() = “20071231235959″
  • Math.baseConvert( n, b1, b2 )
    Converte “n” dalla base numerica “b1″ alla base numerica “b2″.
  • Math.gra2rad( g )
    Converte “g” da gradi in radianti.
  • Math.rad2gra( r )
    Converte “r” da radianti in gradi.
  • Window.getScroll()
    Ritorna un array [x,y] con l’ammontare di pixel che la pagina ha scrollato.
    (clone di document.viewport.getScrollOffsets())
  • Window.getDimensions()
    Ritorna un array [x,y] con le dimensioni interne della finestra del browser.
    (clone di document.viewport.getDimensions ())
  • Window.pop( url [,params…] )
    Apre una popup al centro dello schermo e controlla se l’apertura è stata bloccata. Mostra l’indirizzo indicato dal primo parametro URL. Accetta i seguenti parametri:

    • la larghezza in pixel (number)
    • l’altezza in pixel (number)
    • il target (se diverso dalle seguenti parole riservate)
    • maximized: la popup is apre usando le dimensioni massime possibili
    • fullscreen: usa l’attributo “fullscreen” di window.open . Explorer è l’unico che esegue un vero fullscreen: gli altri browser si comportano come nel caso “maximized”
    • nocenter: non mette la popup al centro dello schermo
    • noresize: la popup non sarà ridimensionabile
    • scroll: mostra la scrollbar
    • return: ritorna l’oggetto window in modo da poterlo controllare.

Esempio: window.pop('http://www.google.com‘,400,300,’myTarget’,’scroll’)

Estensioni di Prototype

  • Element.setDimensions( element, array(x,y) )
    Setta le dimensioni di un elemento.
  • Element.get( )
    Se l’elemento è un elemento di una form, ritorna una stringa o un array con i value dell’elemento. Supporta gli array di elementi (es. input radio). Richiama la funzione globale $FGet().
    Esempio:
    <form name=”form1″ id=”form1″>
    <input type=”radio”name=”scelta1″ id=”r0″ value=”A” checked>
    <input type=”radio”name=”scelta1″ id=”r1″ value=”B” checked>
    <input type=”radio”name=”scelta1″ id=”r2″ value=”C”>
    <input type=”text” id=”txt1″ value=”ciao”>
    </form>
    <script>
    document.write($FGet(document.form1.scelta1)) // ritorna [“A”,”B”]
    document.write($(”r2″).get()) // ritorna [“A”,”B”]
    document.write($(”txt1″).get()) // ritorna “ciao”
    </script>
  • Element.set( string or array )
    Se l’elemento è un elemento di una form, setta i value dell’elemento. Supporta gli array di elementi (es. input radio). Richiama la funzione globale $FSet().
    Esempio:
    <form name=”form1″ id=”form1″>
    <input type=”radio”name=”scelta1″ id=”r0″ value=”A”>
    <input type=”radio”name=”scelta1″ id=”r1″ value=”B”>
    <input type=”radio”name=”scelta1″ id=”r2″ value=”C”>
    <input type=”text” id=”txt1″ value=””>
    </form>
    <script>
    document.write($(document.form1.scelta1).set([“A”,”B”]) // checka i checkbox con value “A” e “B”
    document.write($(”r2″).set([“A”,”B”]) // checka i checkbox con value “A” e “B”
    document.write($(”txt1″).set(”ciao”)) // setta il value dell’input uguale a “ciao”
    </script>
  • Element.getFormElements()
    Ritorna un array con tutti gl INPUT, TEXTAREA e SELECT contenuti nell’elemento.
  • Element.setLeft(element, n)
    Setta la posizione X di un elemento posizionato ABSOLUTE o RELATIVE.
  • Element.setTop(element, n)
    Setta la posizione Y di un elemento posizionato ABSOLUTE o RELATIVE.
  • Element.setMidLeft(element, n)
    Setta la posizione X di un elemento posizionato ABSOLUTE o RELATIVE, ma la coordinata indicata si riferisce al centro dell’elemento e non al suo angolo in alto a sinistra.
  • Element.setMidTop(element, n)
    Setta la posizione Y di un elemento posizionato ABSOLUTE o RELATIVE, ma la coordinata indicata si riferisce al centro dell’elemento e non al suo angolo in alto a sinistra.
  • Element.setPos( element, array(x,y) )
    Setta la posizione [x,y] di un elemento posizionato ABSOLUTE o RELATIVE.
  • Element.setMid( element, array(x,y) )
    Setta la posizione [x,y] di un elemento posizionato ABSOLUTE o RELATIVE, ma la coordinata indicata si riferisce al centro dell’elemento e non al suo angolo in alto a sinistra.
  • Element.getPos( element, array(x,y) )
    Ritorna un array con la posizione [x,y] di un elemento posizionato ABSOLUTE o RELATIVE.
  • Element.getMid( element, array(x,y) )
    Ritorna un array con la posizione [x,y] di un elemento posizionato ABSOLUTE o RELATIVE, ma la coordinata indicata si riferisce al centro dell’oggetto e non al suo angolo in alto a sinistra.
  • Form.submit()
    Gestisce anche l’evento onsubmit().

Nuovi oggetti:

  • is
    Verifica alcune condizioni del browser, di JavaScript e di campi delle form.
  • Cookie
    Gestisce i cookies.
  • Function
    Alcune utility per le funzioni
  • is.IE
    Vale TRUE se il browser è Internet Explorer, FALSE altrimenti.
  • is.Opera
    Vale TRUE se il browser è Opera, FALSE altrimenti.
  • is.WebKit
    Vale TRUE se il browser usa l’engine WebKit (Safari, Chrome, ecc), FALSE altrimenti.
  • is.Gecko
    Vale TRUE se il browser usa l’engine Gecko (Firefox, Flock, ecc), FALSE altrimenti.
  • is.Win
    Vale TRUE se il sistema operativo è Windows, FALSE altrimenti.
  • is.Mac
    Vale TRUE se il sistema operativo è Macintosh, FALSE altrimenti.
  • is.S(s)
    Ritorna TRUE se “s” è di tipo “string”.
  • is.B(s)
    Ritorna TRUE se “s” è di tipo “boolean”.
  • is.N(s)
    Ritorna TRUE se “s” è di tipo “number”.
  • is.F(s)
    Ritorna TRUE se “s” è di tipo “function”.
  • is.O(s)
    Ritorna TRUE se “s” è di tipo “object”.
  • is.U(s)
    Ritorna TRUE se “s” è di tipo “undefined”.
  • is.Null(s)
    Ritorna TRUE se “s” è null.
  • is.Defined(s)
    Ritorna FALSE se “s” è di tipo “undefined”.
  • is.Array(a)
    Ritorna TRUE se “a” è un oggetto Array(), FALSE altrimenti.
  • is.Date(d)
    Ritorna TRUE se “d” è un oggetto Date(), FALSE altrimenti.
  • is.Object(o)
    Ritorna TRUE se “o” è un oggetto diverso da Array() e Date(), FALSE altrimenti.
  • is.Num(s)
    Ritorna TRUE se “s” è un numero o una stringa con valore numerico, FALSE altrimenti. A differenza di
    isNaN, il caso “” non è numerico.
  • is.Int(s)
    Ritorna TRUE se “s” è un numero intero o una stringa con valore numerico intero, FALSE altrimenti.
  • is.Float(s)
    Ritorna TRUE se “s” è un numero decimale o una stringa con valore numerico decimale, FALSE altrimenti.
  • is.Empty(s)
    Ritorna TRUE se la stringa “s” è vuota o contiene solo spazi bianchi, FALSE altrimenti.
  • is.Email(s)
    Ritorna TRUE se “s” è una stringa che contiene un indirizzo e-mail, FALSE altrimenti.
  • is.RealDate (y,m,d)
    Ritorna TRUE se viene passata una data valida, FALSE altrimenti.
  • is.Url(s)
    Ritorna TRUE se “s” è una stringa che contiene un’url, FALSE altrimenti.
  • is.CodiceFiscale(s)
    Ritorna TRUE se “s” è una stringa che contiene un codice fiscale, FALSE altrimenti.
  • is.PIVA(s)
    Ritorna TRUE se “s” è una stringa che contiene un codice fiscale, FALSE altrimenti.
  • is.Tel(s)
    Ritorna TRUE se “s” è una stringa che contiene un codice fiscale, FALSE altrimenti.
  • is.formElement(id or element)
    Ritorna TRUE se l’elemento è una TEXTAREA, SELECT oppure INPUT, FALSE altrimenti.
  • Cookie.set( name, value [, duration] )
    Setta un cookie.
    Il valore duration indica tra quanti giorni il cookie scade, e se non viene indicato il cookie sparisce alla chiusura del browser.
  • Cookie.get( name )
    Ritrorna il valore del cookie indicato, NULL se il cookie non esiste.
  • Cookie.del( name )
    Elimina il cookie indicato e lo ritorna.
  • Cookie.isEnabled()
    Ritorna TRUE se i cookie sono abilitati, FALSE altrimenti.
  • Function.name( n )
    Restituisce il nome di una funzione dando come argomento una funzione o un arguments.callee.

Funzioni di debug

  • trace( [arg1] [, arg2] [, arg3] [, …] )
    Come alert() ma accetta qualsiasi numero di elementi.
  • dump( object [, str “HTML” ] )
    restituisce la struttura dell’oggetto passato.
  • wr( str )
    Esegue
    document.write() inserendo il contenuto all’interno di un div.
  • xmp( str )
    Esegue
    document.write() inserendo il contenuto all’interno di un xmp.
  • log( str )
    Esegue console.log() nel caso in cui esista, altrimenti crea un elemento DIV#jLog con float:right in cima alla pagina, e vi inserisce il messaggio “str”. E’ consigliato settare questo stile CSS: #jLog{height:10em;overflow:auto;border:1px solid #ccc;background:#fff;color:#000;}

Funzioni globali

  • $EX( element )
    Restituisce il contenuto di innerHTML o di value.
  • $FGet( element )
    Se l’elemento è un elemento di una form, ritorna una stringa o un array con i value dell’elemento. Supporta gli array di elementi (es. input radio). Esempio:
    <form name=”form1″ id=”form1″>
    <input type=”radio”name=”scelta1″ id=”r0″ value=”A” checked>
    <input type=”radio”name=”scelta1″ id=”r1″ value=”B” checked>
    <input type=”radio”name=”scelta1″ id=”r2″ value=”C”>
    <input type=”text” id=”txt1″ value=”ciao”>
    </form>
    <script>
    document.write($FGet(document.form1.scelta1)) // ritorna [“A”,”B”]
    document.write($(”r2″).get()) // ritorna [“A”,”B”]
    document.write($(”txt1″).get()) // ritorna “ciao”
    </script>
  • $FSet( element, string or array )
    Se l’elemento è un elemento di una form, setta i value dell’elemento. Supporta gli array di elementi (es. input radio).
    Esempio:
    <form name=”form1″ id=”form1″>
    <input type=”radio”name=”scelta1″ id=”r0″ value=”A”>
    <input type=”radio”name=”scelta1″ id=”r1″ value=”B”>
    <input type=”radio”name=”scelta1″ id=”r2″ value=”C”>
    <input type=”text” id=”txt1″ value=””>
    </form>
    <script>
    document.write($FSet(document.form1.scelta,[“A”,”B”]) // checka i checkbox con value “A” e “B”
    document.write($(document.form1.scelta1).set([“A”,”B”]) // checka i checkbox con value “A” e “B”
    document.write($(”r2″).set([“A”,”B”]) // checka i checkbox con value “A” e “B”
    document.write($(”txt1″).set(”ciao”)) // setta il value dell’input uguale a “ciao”
    </script>
  • ALLOF( object, array )
    Ritorna TRUE se l’oggetto è uguale a tutti i valori dell’array, FALSE altrimenti.
  • NONEOF( object, array )
    Ritorna TRUE se l’oggetto è diverso da tutti i valori dell’array, FALSE altrimenti.
  • ONEOF( object, array )
    Ritorna TRUE se l’oggetto è uguale a uno dei valori dell’array, FALSE altrimenti.
  • ONENOTOF( object, array )
    Ritorna TRUE se l’oggetto è diverso da almeno uno dei valori dell’array, FALSE altrimenti.
  • global( string )
    Restituisce o setta l’attributo
    innerHTML oppure value.
  • wr( str )
    Equivalente di
    document.write(str).
  • wri( str )
    Equivalente di
    document.write(str).
  • xmp( str )
    Equivalente di
    document.write(<xmp>+str+</xmp>).
  • div( str )
    Equivalente di
    document.write(<div>+str+</div>).
  • ce( str )
    Equivalente di
    document.createElement().
  • ac( element1 , element 2 )
    Appende element1 a element2.
  • rc( element1 , element 2 )
    Rimuove element1 da element2.
  • px( str [, element ] )
    Aggiunge il suffisso “px” ad un numero, eseguendo parseInt().

Variabili globali

  • $_GET
    Come in PHP, contiene tutti i parametri indicati nell’URL.
    NOTA BENE: i valori sono tutti di tipo String().
  • $_SERVER[“PHP_SELF”]
    Come in PHP, contiene il path assoluto al file, relativo al dominio.
    Esempio: “/path/to/index.html”
  • $_SERVER[“QUERY_STRING”]
    Come in PHP, contiene tutti i parametri dell’url in un’unica stringa senza il punto interrogativo iniziale.
    Esempio: “q=mysearch&hl=it”

Altro

  • navigator.version
    Versione del motore del browser (Gecko, WebKit, IE, Opera, …)

Download

7 commenti Add your own

  • 1. zakwer  |  13 novembre 2007 alle 17:16

    immagino questo blog sia online da poco tempo: e’ molto interessante e mi sembra incredibile che nn ci siano commenti :)
    beh, complimenti.
    zak

    Rispondi
  • 2. jure  |  14 novembre 2007 alle 12:28

    sì, non mi sto facendo molta pubblicità :)

    Rispondi
  • 3. Mauro De Giorgi  |  4 marzo 2008 alle 00:08

    Davvero interessante, bravo :)
    Spero tu abbia più successo in futuro perché lo meriti
    Ciao

    Rispondi
  • 4. matteo  |  16 aprile 2008 alle 09:07

    Complimenti per la libreria, sono molto utili

    Rispondi
  • 5. buribus  |  24 aprile 2008 alle 13:46

    bel lavoro davvero; ho un problema pero’, con la gestione dei cookie, e ho provato anche un’estensione simile per prototype di “Tidbit”, ottenendo sempre lo stesso errore.
    Con firefox è tutto ok, con IE7 invece ho problemi nella lettura del contenuto del cookie, non va Cookie.get( ‘nomecookie’ ).
    forse sbaglio qualcosa io, avrei bisogno di un aiuto

    Rispondi
  • 6. jure  |  28 aprile 2008 alle 15:06

    ciao,
    ho aggiornato jPrototype, anche se Cookie.get() non mi ha mai dato problemi. Prova ora!

    Rispondi
  • 7. Achille  |  18 giugno 2008 alle 10:30

    Veramente un buon lavoro!!! Credo che se posterai in inglese meriterai più visibilità on line.

    Rispondi

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Trackback this post  |  Subscribe to the comments via RSS Feed


%d blogger cliccano Mi Piace per questo: