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
windowin 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’eventoonsubmit().
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 diisNaN, 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 )
Eseguedocument.write()inserendo il contenuto all’interno di undiv. - xmp( str )
Eseguedocument.write()inserendo il contenuto all’interno di unxmp. - 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’attributoinnerHTMLoppurevalue. - wr( str )
Equivalente didocument.write(str). - wri( str )
Equivalente didocument.write(str). - xmp( str )
Equivalente didocument.write(<xmp>+str+</xmp>). - div( str )
Equivalente didocument.write(<div>+str+</div>). - ce( str )
Equivalente didocument.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
- jPrototype.zip (0.2x – Prototype 1.6+)
- jPrototype.zip (0.179 – Prototype 1.5+)
7 Comments Add your own
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed
1.
zakwer | 13 Novembre 2007 at 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
2.
jure | 14 Novembre 2007 at 12:28
sì, non mi sto facendo molta pubblicità :)
3.
Mauro De Giorgi | 4 Marzo 2008 at 00:08
Davvero interessante, bravo :)
Spero tu abbia più successo in futuro perché lo meriti
Ciao
4.
matteo | 16 Aprile 2008 at 09:07
Complimenti per la libreria, sono molto utili
5.
buribus | 24 Aprile 2008 at 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
6.
jure | 28 Aprile 2008 at 15:06
ciao,
ho aggiornato jPrototype, anche se Cookie.get() non mi ha mai dato problemi. Prova ora!
7.
Achille | 18 Giugno 2008 at 10:30
Veramente un buon lavoro!!! Credo che se posterai in inglese meriterai più visibilità on line.