########### DATA BINDING ######################################################<--> DATA BINDING http://msdn.microsoft.com/library/default.asp?url=/workshop/author/databind/objmodel.asp
Server : String identifying the protocol and the server that supplies the data. Connect : Standard ODBC connection string identifying the data source name configured on the server. SQL : SQL query identifying the table and columns to be selected from the database.
Nome
Biography

FirstLastBirthDeathOrigin
BINDABLE HTML ELEMENTS THAT SUPPLY READ-ONLY FUNCTIONALITY INCLUDE a, button, div, img, frame, iframe, label, marquee, and span.

>>> F.A.Q. 244. Come posso eseguire 3 comandi in sequenza? Semplicemente inserendoli in una funzione: Avvia >>> F.A.Q. 245. Si può disattivare "visualizza HTML" ? Non è possibile ottenere un risultato sicuro, nel senso che se l'utente disattiva JavaScript può nuovamente vedere il codice, è possibile disattivare il tasto destro del mouse, i tasti della tastiera e aprire una finestra senza barre, ma sono tutti ostacoli facilmente aggirabili. >>> F.A.Q. 246. Come posso fare per far scomparire tutti i livelli tranne quello dell'immagine su cui mi posiziono con il mouse? Ecco un esempio funzionante per IE/N6+:
>>> F.A.Q. 251. Come posso inserire dei brani musicali in una pagina selezionabili da un select? Ecco un esempio che consente di suonare dei files MIDI. La funzione playSound() appena attivata ferma tutti i suoni e poi inizia quello selezionato:
>>> F.A.Q. 252. Come posso all'apertura della mia home page avere un suono diverso e casuale ogni volta? Nei due esempi, il primo prevede la presenza di tutti i suoni già immersi e caricati nel documento, quindi con lo svantaggio di richiedere tempi di download lunghi al primo accesso alla pagina se i files sono molto grandi, il secondo invece sceglie un suono a caso e poi inserisce con document.write() il tag necessario: Esempio1: Esempio2: . . . . . . >>> F.A.Q. 253. Come posso aprire con una sola funzione finestre con url e target diversi? Passando alla funzione il nome della pagina HTML da aprire in un parametro insieme al TARGET: Apri Stessa ApriNuova >>> F.A.Q. 254. Come posso posizionare un livello in base alla posizione di scorrimento verticale del documento? Questo script legge la posizione dell'area visibile al momento dell'apertura e riposiziona il layer di conseguenza:
>>> F.A.Q. 255. Come posso mostrare il colore di sfondo di un livello completamente con Netscape 4.x? Ecco un esempio:
Prova di livello completamente colorato per Netscape 4.x
>>> F.A.Q. 256. Come posso fare perchè un livello rimanga sempre visibile in alto a sinistra anche se scrollo la pagina? Non esiste un event-handler che possa intercettare lo scroll della pagina, ma IE lo ha implementato comunque (onScroll) e dunque lo usiamo. Per gli altri browser invece lanciamo la funzione che sposta il livello con un timer a 10 millisecondi, dunque forziamo il riposizionamento del livello ottenendo comunque l'effetto voluto.

























Vedi anche la F.A.Q. n. 287 per tenere fissa una tabella. >>> F.A.Q. 257. Come posso impostare con una sola funzione colore e ampiezza di vari livelli in Netscape 4.x? Ad una funzione passiamo come parametri il livello su cui agire ed i valori:
Primo livello....
Secondo livello...
>>> F.A.Q. 258. COME POSSO OTTENERE AUTOMATICAMENTE IL VALORE DEL RADIO SELEZIONATO? Ecco un esempio:


>>> F.A.Q. 259. Come posso aprire una pagina a frames da vari link nella quale due dei tre frames cambiano in base al link cliccato? Lo script che segue apre una pop-up, scrive dinamicamente il frameset (definito in una variabile) e poi carica nei due frames creati le pagine ricevute come parametri: Apri1 Apri2 N.B. Il blocco in verde va TUTTO IN UNA RIGA! >>> F.A.Q. 260. Come posso sovrapporre due livelli? Agendo sulle proprietà top e left:
Ciao!
Ciao!
>>> F.A.Q. 261. Come posso aggiungere una pagina o un'immagine al desktop di windows con onClick? Ecco un esempio (ovviamente funziona solo per Internet Explorer e solo su sistemi Windows): Si può usare "website" o "image" come attributo dopo l'url
>>> F.A.Q. 262. Come posso abilitare o disabilitare JavaScript nel browser? Andando a modificare le preferenze. Ovviamente è un'operazione che può fare solo l'utente, cioè non è possibile disabilitare o abilitare l'interprete JavaScript tramite uno script. NN4:Edit-Preferences-Advanced Preferences-Enable JavaScript NN6:Edit-Preferences-Advanced-Enable JavaScript in Navigator IE4/5:strumenti-opzioni internet-protezione-personalizza livello >>> F.A.Q. 263. Come posso aggiungere le scrollbars ad un div con IE4 e NN6? Usando la proprietà "overflow" del DIV
ciao!
>>> F.A.Q. 264. Come posso stabilire l'ordine di sovrapposizione dei livelli di un documento? Indicando con il numero successivo a z-index l'ordine di sovrapposizione Più alto è il numero più "galleggerà" il livello, quindi si sovrappone a quelli di indice più basso.
>>> F.A.Q. 265. È possibile assegnare ad un campo un valore iniziale diverso a seconda di una scelta che si fa con un menù a tendina? Si, è sufficiente leggere il valore associato all'opzione ad ogni cambio di selezione e riportarlo nel campo testo:
>>> F.A.Q. 266. Come posso aprire una pagina diversa in base alla scelta di una select? Lo script che segue apre la pagina memorizzata nell'elemento di un array corrispondente all'opzione selezionata.
>>> F.A.Q. 267. COME POSSO PASSARE DEI VALORI DI CAMPI TESTO AD UNA PAGINA CHE SOSTITUISCA QUELLA CONTENENTE I VALORI? Nella pagina che deve ricevere i valori si può valutare la QueryString ricevuta in GET dalla pagina precedente. Pagina principale:
Quantità prodotto 1:
Quantità prodotto 2:
Totale:
Pagina dati.htm:



>>> F.A.Q. 268. COME FUNZIONA substring()? È un metodo che restituisce una sottostringa da una stringa cui viene applicato. La sintassi è string.substring(da,a) dove: "da" è un intero che specifica la posizione del primo carattere da restituire compreso tra 0 e string.length-1 "a" è un intero (opzionale) maggiore almeno di uno rispetto a "da" e compreso tra 1 e string.length. Vediamo un esempio:
>>> F.A.Q. 269. JAVA E JAVASCRIPT SONO LA STESSA COSA? JavaScript non è JAVA. L'analogia dei nomi è stata solo una questione pubblicitaria. Inizialmente JavaAcript si chiamava LiveScript, poi cambiato in JavaScript pochi giorni prima del rilascio. Anche se possono interagire in quanto convivono all'interno di una pagina HTML, sono sostanzialmente differenti, JavaScript può controllare il comportamento del browser e il suo contenuto ed interagire con l'utente, ma la sua azione e' strettamente legata alla pagina HTML che contiene lo script, ed inoltre JavaScript non può in alcun modo interagire con il File System né del CLIENT, né del server. Anzi JavaScript non ha proprio nulla a che spartire con il server, eccezion fatta per JScript che è un "dialetto" di JavaScript implementato da Microsoft per la creazione di scripting in ambiente ASP su server WinNT/2000. JAVA invece e' un linguaggio di programmazione ad oggetti (come lo è ad eempio anche C++) ma è compilato (gli eseguibili hanno estensione .class) e viene inglobato nel documento come oggetto a sè stante. JAVA può gestire la grafica, la rete, il multithreading, così come interagire con database e con il FileSystem. >>> F.A.Q. 270. È POSSIBILE RICHIAMARE FUNZIONI IN ALTRE FINESTRE CREATE CON window.open ? Certo, una volta aperta la finestra per eseguire delle funzioni contenute basta farvi riferimento tramite il nome della finestra: Se nella pagina eseguiamo: var aa=window.open('tuapagina.htm') ed in tuapagina.htm abbiamo una funzione: function NomeFunzione() { . . . } per eseguire NomeFunzione() dalla finestra principale basta chiamarla così: aa.Nome_funzione(); Ovviamente possiamo passare dei parametri ed ottenerne risultati come faremmo normalmente con qualsiasi altra funzione "locale". >>> F.A.Q. 271. Come posso permettere il download di un file con JavaScript? Un qualsiasi file la cui estensione non è conosciuta al browser può essere semplicemente linkato in un normale HREF perché all'utente venga chiesto cosa fare (scaricare, eseguire, etc): Scarica l'archivio Per scaricare il file tramite un bottone possiamo usare JavaScript ad esempio come segue:
>>> F.A.Q. 272. COME POSSO FARE PER CARICARE IN MODO RANDOM UNA PAGINA WEB TRA UN SET DI PAGINE? Supponiamo di avere 9 pagine cui avremo dato i nomi page1.htm, page2.htm etc. Nella pagina che apriremo inseriamo il seguente codice: Al caricamento della pagina verrà generato un numero casuale fra 1 e 10 ed il relativo file verrà immediatamente caricato al posto dello script. >>> F.A.Q. 274. COME POSSO CONSENTIRE AL VISITATORE DI SELEZIONARE UNA PORZIONE DI UNA TEXTAREA ED AGIRE SULLA SELEZIONE CON JAVASCRIPT? È possibile solo con IE.: C'è uno script realizzato da pippopd negli UserScripts che consente di inserire dei TAG html in una textarea come se fosse un editor testuale. >>> F.A.Q. 275. COME POSSO RICARICARE UNA PAGINA OGNI 5 SECONDI? Si può fare sia con i META TAG che con JavaScript Con i META basta inserire questo tag nella sezione ... del documento: altrimenti con JavaScript basta inseire nel : >>> F.A.Q. 276. COME POSSO SCRIVERE IL VALORE DEL SELECT SELEZIONATO NEL DOCUMENTO STESSO? Di primo acchito si è tentati di usare document.write(), ma bisogna tener presente che scrivere nel documento è possibile solo mentre lo stesso viene caricato, se tentiamo di scrivere quando il documento è già stato scaricato dal server otterremmo la cancellazione del documento stesso sostituito dal valore che abbiamo scritto. La soluzione a questo problema si può trovare o in un campo TEXT/TEXTAREA di un form cui possiamo modificare il VALUE oppure immergiamo nel documento un livello e scriviamo nel livello. Lo script che segue mostra la seconda soluzione:
>>> F.A.Q. 277. COME POSSO CAMBIARE IL COLORE DELLE CELLE DI UNA TABELLA AL PASSAGGIO DEL MOUSE? È possibile farlo solo con IE e N6+/Mozilla:
 
 
>>> F.A.Q. 278. COME POSSO REALIZZARE UN MENU DROP DOWN CHE APPARE E SCOMPARE AL CLICK SU UN PULSANTE? Inseriamo la lista SELECT in un livello che renderemo visibile al click:
>>> F.A.Q. 279. COME POSSO CAMBIARE COLORE DELLE SINGOLE LETTERE DI UNA PAROLA AL PASSAGGIO DEL MOUSE? Racchiudendo ogni lettera in uno SPAN e cambiando il colore al mouseOver: P I P P O >>> F.A.Q. 280. COME POSSO NASCONDERE UN CAMPO TESTO IN UN FORM? Esiste un campo input apposito, il tipo hidden: Questo campo testo viene visualizzato: Questo campo invece resta nascosto e può essere preimpostato usando "value" o tramite JavaScript >>> F.A.Q. 281. COME POSSO REALIZZARE UNO SLIDESHOW DI IMMAGINI? Con la stessa tecnica usata comunemente per i RollOver, sostituiamo ad un'immagine esistente nel documento un'altra caricata appositamente.



Inizia/Ricomincia
Ferma SlideShow
Continua SlideShow
>>> F.A.Q. 282. VORREI NON DOVER SEMPRE SCRIVERE LO STESSO CODICE DI RIFERIMENTO AGLI ELEMENTI DI UN MODULO PER OGNI ELEMENTO, COME POSSO FARE? Usando with(oggetto) {istruzioni} che consente di applicare all'oggetto specificato le istruzioni che seguono fra parentesi:




>>> F.A.Q. 283. COME POSSO CARICARE UNA FUNZIONE RIPETUTAMENTE DOPO UN TEMPO CASUALE? Usando setTimeout() e passandogli come argomento di tempo un numero generato casualmente. Nello script che segue la funzione viene eseguita ciclicamente ogni 10 secondi, ed ogni volta che viene eseguita genera un timer a tempo variabile che esegue l'alert(). . . . . . . >>> F.A.Q. 284. COME POSSO VERIFICARE CHE IN UN CAMPO TESTO SIANO INSERITI SOLO NUMERI DA 0 A 24? Verifichiamo che il valore inserito sia un numero e che sia compreso entro i limiti voluti. Se la condizione non e' verificata cancelliamo il valore e riportiamo il cursore nel campo in attesa di input dell'utente:
>>> F.A.Q. 285. COME POSSO FARE PER AVERE L'ICONA PERSONALE NEI PREFERITI? Tramite un'istruzione da inserire fra i META TAGS: . . . . . . Per maggiori informazioni consultare il sito http://www.favicon.it >>> F.A.Q. 287. COME POSSO FARE IN MODO CHE SCROLLANDO UNA PAGINA VERTICALMENTE UNA TABELLA IN ESSA CONTENUTA NON SCOMPAIA? Non esiste un event-handler che possa intercettare lo scroll della pagina, ma IE lo ha implementato comunque (onScroll) e dunque lo usiamo. Per gli altri browser invece lanciamo la funzione che sposta il livello con un timer a 10 millisecondi, dunque forziamo il riposizionamento del livello ottenendo comunque l'effetto voluto.
   
   
Vedi anche la F.A.Q. n. 256 per tenere fissa un'immagine. >>> F.A.Q. 288. COME POSSO REALIZZARE UN CALENDARIO CHE AL CAMBIARE DI ANNO O MESE O GIORNO MI RESTITUISCA LA DATA RELATIVA? Ecco un esempio, creiamo una pagina con due frames. Nella pagina principale creiamo il frameset che segue: È importante l'event-handler nel frameset per non generare errori dovuti al mancato caricamento dei frames quando scattano le funzioni per la prima volta. Nel frame di sinistra:


Mentre nel frame di destra:
Luned Martedì Mercoledì Giovedì Venerdì Sabato Domenica
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Otterremo una schermata in cui potremo selezionare a sinistra l'anno ed il mese, ed a destra cliccando sul giorno del mese (numero) vedremo spuntarsi il giorno della settimana relativo. >>> F.A.Q. 289. COME POSSO CREARE UN TESTO CHE AUMENTA E DIMINUISCE DINAMICAMENTE DI DIMENSIONE? È possibile farlo solo con IE5 e successivi e Netscape6/Mozilla e successivi. Poniamo il testo su cui vogliamo l'effetto ed impostiamone la dimensione agendo sulla proprietà font-size del CSS. . . .
Ciao!
. . . Vedi anche la F.A.Q. n. 197 per uno script che cambia la dimensione del testo al mouseOver. >>> F.A.Q. 290. COME POSSO INSERIRE DINAMICAMENTE DATI IN UNA TABELLA? Devi identificare ogni singola cella della tabella con un ID e poi usare innerHTML per scrivere. Lo script che segue funziona solo per IE4 e successivi, e Mozilla/Netscape6 e successivi.
0 0
0 0



Inserisci testo da scrivere nella cella:
>>> F.A.Q. 291. COME POSSO CREARE UNO SCORRIMENTO A DESTRA O A SINISTRA DI IMMAGINI CLICCANDO SUI RELATIVI BOTTONI/IMMAGINE? C'è uno StaffScript che illustra quest'effetto: il Rullino d'immagini >>> F.A.Q. 292. COME POSSO CREARE DINAMICAMENTE UNA SELECT E CAMBIARNE I VALORI DELLE OPTION TRAMITE UN'ALTRA SELECT? C'è uno StaffScript che mostra come fare: Popolare una uno
due
tre
quattro

p.s. Ovviamente questo script non è di reale utilità, ma puo' servire da base di partenza per altri lavori. >>> F.A.Q. 295. COME POSSO UTILIZZARE ONMOUSEOVER SU UN'IMMAGINE CON NETSCAPE 4.X? onMouseOver non è un event-handler per le immagini, anche se funziona con IE la cosa non è prevista dalle specifiche. L'unico modo "lecito" per scatenare un evento quando il mouse si posiziona su un'immagine è contornare la stessa con un link: >>> F.A.Q. 296. COME POSSO APRIRE NUOVE FINESTRE CONTENENTI IMMAGINI DIVERSE A DIMENSIONI DIVERSE DA UN SOLO SCRIPT? Una soluzione immediata consiste nel passare alla funzione che apre la pop-up oltre al nome dell'immagine anche le dimensioni, e poi usare document.write() per scriverci il codice HTML: Nel link metteremo ovviamente: apri la finestra Altrimenti, senza specificare le dimensioni, si può usare un piccolo trucchetto. Fare dei thumbnails che abbiano dimensioni che siano una frazione dell'immagine grande (1/2, 1/3, 1/4 etc.), al momento del click, rilevare le dimensioni del thumbnail, moltiplicarle per il fattore di riduzione ed usare il risultato per settare le dimensioni della finestra. Per leggere le dimensioni di un'immagine nel documento puo' essere utile la >>> F.A.Q. n. 163. >>> F.A.Q. 297. COME POSSO OLTRE CHE VERIFICARE LA VALIDITÀ DEI CAMPI, PERMETTERE UNA SCELTA DI CHECKBOX MINIMA DI 6 E MASSIMA DI 10? Ecco un esempio, abbiamo integrato lo StaffScript n. 13 (Controllo Form) con altre due funzioni: http://www.jsdir.com - Validazione campi form A puro titolo di esempio tutti i campi di questo form sono obbligatori.
Il form sarà inviato davvero a riccardo@jsdir.com
Ne approfitto per fare un po' di sondaggio.
c1 - c2 - c3 - c4 - c5 - c6 - c7 - c8 - c9 - c10 - c11 - c12
Nome:
e-mail:
Conferma e-mail:

Usi Internet per:
Quale browser usi? Netscape - Explorer - Altri

Come sei arrivato su JsDir.com? (almeno 1 selezione) Recensione su una rivista (quale? )
Motori di ricerca - Segnalazione di un amico
Link o banner da un'altro sito - Per caso

            
>>> F.A.Q. 298. Come posso rilevare il tipo del nodo che mi interessa con IE5 e N6/Mozilla? Leggendo la proprietà nodeType: tiponodo=document.getElementById('id_livello').childNodes[n].nodeType; >>> F.A.Q. 299. Come posso risalire al nome del nodo che mi interessa con IE5 e N6/Mozilla? Leggendo la proprietà nodeName: nomenodo=document.getElementById('id_livello').childNodes[n].nodeName; >>> F.A.Q. 300. Come posso risalire al valore di un nodo testo con IE5 e N6/Mozilla? Leggendo la proprietà nodeValue: valorenodo=document.getElementById('id_livello').childNodes[n].nodeValue; >>> F.A.Q. 301. Come posso impostare la classe per un nodo con IE5 e N6/Mozilla? Settando la proprietà className: document.getElementById('id_livello').childNodes[n].className="nome"; >>> F.A.Q. 302. Come posso duplicare un nodo ed il suo contenuto? Assegnandolo ad una variabile (con cloneNode()) e poi aggiungendolo nella posizione voluta del documento con appendChild(variabile): clone=document.getElementById('id_livello').childNodes[n].cloneNode(true); document.getElementById('id_livello').appendChild(clone) Il parametro (true nell'esempio) specifica il tipo di copia. Se impostato a false o omesso il duplicato non contiene nient'altro che il nodo, senza sottonodi, quindi anche senza eventuali testi che si troverebbero in un figlio textNode. Specificando true come parametro viene duplicato il nodo con tutti i sottonodi. Vedi anche la F.A.Q. n. 303 >>> F.A.Q. 303. Come posso duplicare un nodo e non il suo contenuto? Assegnandolo ad una variabile (con cloneNode()) e poi aggiungendolo nella posizione voluta del documento con appendChild(variabile): clone=document.getElementById('id_livello').childNodes[n].cloneNode(false) document.getElementById('id_livello').appendChild(clone) Il parametro (false nell'esempio) specifica il tipo di copia. Se impostato a false o omesso il duplicato non contiene nient'altro che il nodo, senza sottonodi, quindi anche senza eventuali testi che si troverebbero in un figlio textNode. Specificando true come parametro viene duplicato il nodo con tutti i sottonodi. Vedi anche la F.A.Q. n. 302 >>> F.A.Q. 304. Come posso verificare se un nodo ha nodi figli? Leggendo la proprietà hasChildNodes che restituirà un valore booleano: hafigli=document.getElementById('id_livello').childNodes[n].hasChildNodes(); >>> F.A.Q. 305. Come posso rilevare il valore di un'attributo di un nodo? Dopo aver identificato l'elemento si può applicare getAttribute('nomeattributo') per leggere il valore voluto: ValoreAttributo=document.getElementById('id_livello').getAttribute('align'); >>> F.A.Q. 306. COME POSSO RIMUOVERE L'ATTRIBUTO DI UN NODO? Dopo aver identificato l'elemento si può applicare removeAttribute('nomeattributo') per eliminarlo: >>> F.A.Q. 307. COME POSSO NASCONDERE UN ELEMENTO? Basta applicargli lo stile display="none": >>> F.A.Q. 308. Come posso mostrare un elemento? Rimuovendo il valore dello stile display (settandolo a stringa vuota): >>> F.A.Q. 309. COME POSSO VERIFICARE QUANTI TAG TD ESISTONO IN UN DOCUMENTO? Nel DOM2 i tags possono essere acceduti come array, dunque basta leggerne la lunghezza: >>> F.A.Q. 310. COME POSSO CAMBIARE IL VALORE DI UN NODO TESTO? Come il normale campo TEXT di un form, è sufficiente identificarlo e poi applicargli il valore tramite nodeValue: >>> F.A.Q. 311. COME POSSO CREARE UN NUOVO ELEMENTO DA INSERIRE NEL BODY DEL DOCUMENTO? È necessario creare un nuovo nodo ed assegnargli un ID, creare un testo ed inserirlo nel nodo e poi immergerlo nel documento: >>> F.A.Q. 312. COME POSSO CREARE UN NUOVO ELEMENTO DA INSERIRE NEL BODY PRIMA DI UN'ALTRO? Con una procedura simile a quella della F.A.Q. n. 311, ma questa volta usiamo insertBefore(nuovoElemento,elementoEsistente): >>> F.A.Q. 313. COME POSSO SOSTITUIRE UN NODO? Con una procedura simile a quella della F.A.Q. n. 311, ma questa volta usiamo replaceChild(nuovoElemento,vecchioElemento): >>> F.A.Q. 314. COME POSSO ELIMINARE UN NODO? Con removeChild(IdNodo) >>> F.A.Q. 315. COME POSSO CREARE ED INSERIRE UN'ANCORA IN UN DOCUMENTO? Con una procedura simile a quella della F.A.Q. n. 311, ma questa volta creiamo un tag di tipo "A" e settiamo opportunamente gli attributi: >>> F.A.Q. 316. COME POSSO DIVIDERE IL VALORE DI UN NODO TESTO? Un nodo testo può essere spezzato in due nodi fratelli con splitText(offset): >>> F.A.Q. 317. Come posso verificare se un certo attributo ha un valore? Leggendo la proprietà specified che sarà true se l'attributo è stato specificato. >>> F.A.Q. 318. Come posso rilevare solo i nodi veramente esistenti nel documento con un solo script per IE5+ e Mozilla/N6+? Ecco un esempio:
nodo testo

paragrafo1

paragrafo2

paragrafo3

paragrafo4

testo fuori dal div >>> F.A.Q. 319. COME POSSO RIMUOVERE I NODI DI TESTO INSERITI TRA GLI SPAZI DA IE5+ E MOZILLA/N6+? Ecco un esempio: cc

sssssssssssssssssssssssssss

sssssss

 

fffffffffffffffffffffffffffffff

vvvvvvvvvvvvvvvvvvvvvvvvvvvvv

jjjjjjjjjj

>>> F.A.Q. 320. COME POSSO CREARE DINAMICAMENTE UNA SELECT DIPENDENTEMENTE DALLA SCELTA DI UN'ALTRA SELECT CON IE5+ E MOZILLA/N6+? Ecco un esempio:
>>> F.A.Q. 321. COME POSSO CREARE DINAMICAMENTE UNA CELLA DI UNA TABELLA E CAMBIARNE IL COLORE AL PASSAGGIO DEL MOUSE? L'esempio che segue genera la tabella usando interamente le funzioni del DOM2: crea        apri nuova >>> F.A.Q. 323. COME FACCIO A RILEVERE L'ALTEZZA DI UN DIV CON IE5+ E MOZILLA/N6+? >>> F.A.Q. 324. COME POSSO SCRIVERE IN UN DIV CON IE5 E NN6? Applicando innerHTML al livello: >>> F.A.Q. 325. COME POSSO MOSTRARE LA PAGINA SOLO QUANDO TUTTE LE IMMAGINI CONTENUTE SONO CARICATE? Si possono immergere le immagini in un layer che all'inizio è nascosto mentre un messaggio di attesa in un altro layer avvisa di attendere. Poi ad ogni immagine associamo l'event-handler onLoad e quando le avremo caricate tutte (il controllo lo facciamo incrementando una variabile, rendiamo invisibile il layer di attesa e visibile quello che contiene le immagini.
ATTENDERE CARICAMENTO IN CORSO!!
>>> F.A.Q. 326. COME POSSO INSERIRE IL VALORE DELLA SCELTA DI UNA SELECT POSTA IN UNA PAGINA FIGLIA, IN UNA TABELLA SULLA PRINCIPALE? Dalla pop-up si può far riferimento alla finestra che l'ha aperta tramite opener: Nella principale:
   
   
apri Nella pop-up: dati




>>> F.A.Q. 327. COME POSSO CREARE UN LINK ATTORNIATO DA UN BORDO IN RILIEVO CHE RIENTRA AL PASSAGGIO DEL MOUSE? Modificando opportunamente lo stile al verificarsi degli eventi mouseOver e mouseOut: Pippo >>> F.A.Q. 328. COME POSSO RIDIMENSIONARE UNA FINESTRA ALL'APERTURA DELLA STESSA ALLE DIMENSIONI DA ME STABILITE? Usando il metodo resizeTo() applicato a self che è un sinonimo della window corrente:


>>> F.A.Q. 329. COME POSSO MOSTRARE UNA GIF AL PASSAGGIO DEL MOUSE SU UN LINK? Immergiamo l'immagine in un layer che renderemo visibile dinamicamente: Visualizza >>> F.A.Q. 330. COME POSSO CAMBIARE L'IMMAGINE DI SFONDO CON IE5+ E MOZILLA/N6? Modificando il background tramite lo style: document.getElementById('id_livello').style.background='url("tua.gif")'; >>> F.A.Q. 331. COME POSSO CENTRARE UN LIVELLO NEL DOCUMENTO QUALUNQUE SIANO LE SUE DIMENSIONI? Vedi la F.A.Q. n. 169. >>> F.A.Q. 332. Come posso cambiare le dimensioni del testo al passaggio del mouse su di esso? Vedi la F.A.Q. n. 197. >>> F.A.Q. 333. Come posso realizzare un orologio dinamico? Vedi la F.A.Q. n. 198. >>> F.A.Q. 334. Come posso mantenere sempre visibile un'immagine nel documento anche quando scrollo la pagina? Vedi la F.A.Q. n. 256. >>> F.A.Q. 335. Come posso aggiungere le scrollbars ad un div con IE4 e NN6? Vedi la F.A.Q. n. 263. >>> F.A.Q. 336. Come posso stabilire l'ordine di sovrapposizione dei livelli di un documento? Vedi la F.A.Q. n. 264. >>> F.A.Q. 337. (CSS2) Come posso rendere lo sfondo fisso o scorrevole al click su un pulsante? Possiamo modificare "al volo" la proprietà backgroundAttachment dello style:



>>> F.A.Q. 338. (CSS2) Come posso impostare un'immagine di sfondo con IE5+ e Mozilla/N6+? Modificando "al volo" la proprietà backgroundImage dello style: setBackgroundImage

..................
>>> F.A.Q. 339. (CSS2) Come posso modificare la posizione di un'immagine nel documento? Possiamo immergerla in un livello e modificarne la posizione con bgPosition: Modifica Posizione Immagine

................


>>> F.A.Q. 340. (CSS2) COME POSSO RENDERE UN'IMMAGINE DI SFONDO DI UN LIVELLO RIPETUTA O NO AL CLICK SU UN BOTTONE? Settando la proprietà backgroundRepeat a "repeat" o "no-repeat". Repeat Dinamico
>>> F.A.Q. 341. (CSS2) COME POSSO CAMBIARE IL BORDO DI UN LIVELLO? Modificando l'attributo border dello style: Border

...........


>>> F.A.Q. 342. (CSS2) COME POSSO IMPOSTARE IL COLORE DI DEL BORDO INFERIORE DI UN LIVELLO? Modificanto l'attributo borderBottomColor dello style:

0 - dotted

1 - solid

2 - dashed

3 - groove

4 - double

5 - ridge

6 - inset

7 - outset

>>> F.A.Q. 343. (CSS2) COME POSSO IMPOSTARE IL COLORE DI DEL BORDO SINISTRO DI UN LIVELLO? Modificando la proprietà borderLeftColor dello style:

0 - dotted

1 - solid

2 - dashed

3 - groove

4 - double

5 - ridge

6 - inset

7 - outset

>>> F.A.Q. 344. (CSS2) COME POSSO IMPOSTARE IL COLORE DI DEL BORDO DESTRO DI UN LIVELLO? Modificando la proprietà borderRightColor dello style:

0 - dotted

1 - solid

2 - dashed

3 - groove

4 - double

5 - ridge

6 - inset

7 - outset

>>> F.A.Q. 345. (CSS2) COME POSSO IMPOSTARE IL COLORE DI DEL BORDO SUPERIORE DI UN LIVELLO? Modificandola proprietà borderTopColor dello style:

0 - dotted

1 - solid

2 - dashed

3 - groove

4 - double

5 - ridge

6 - inset

7 - outset

>>> F.A.Q. 346. (CSS2) COME POSSO CAMBIARE COLORE AD UN TESTO? È sufficiente modificare l'attributo color dello style: FontColor
Pippo
>>> F.A.Q. 347. (CSS2) COME POSSO CAMBIARE TIPO DI CARATTERE DI UN TESTO? È sufficiente modificare l'attributo fontFamily dello style:
Pippo
>>> F.A.Q. 348. (CSS2) COME POSSO CAMBIARE LE DIMENSIONI DI UN TESTO? È sufficiente modificare l'attributo fontSize dello style:
Pippo
>>> F.A.Q. 349. (CSS2) COME POSSO CAMBIARE LO SPESSORE DEL CARATTERE DI UN TESTO? È sufficiente modificare l'attributo fontWeight dello style:
Pippo
>>> F.A.Q. 350. (CSS2) COME POSSO VARIARE L'ALTEZZA DI UN LIVELLO? Modificando l'attributo height dello style:
Pippo
>>> F.A.Q. 351. (CSS2) COME POSSO VARIARE LA LARGHEZZA DI UN LIVELLO? Modificando l'attributo height dello style:
Pippo
>>> F.A.Q. 352. (CSS2) COME POSSO SPOSTARE UN LIVELLO VERSO DESTRA? Modificando l'attributo left dello style:
Pippo
>>> F.A.Q. 353. (CSS2) COME POSSO SPOSTARE UN LIVELLO VERSO SINISTRA? Modificando l'attributo left dello style:
Pippo
>>> F.A.Q. 354. (CSS2) COME POSSO SPOSTARE UN LIVELLO VERSO IL BASSO? Modificando l'attributo top dello style:
Pippo
>>> F.A.Q. 355. (CSS2) COME POSSO SPOSTARE UN LIVELLO VERSO L'ALTO? Modificando l'attributo top dello style:
Pippo
>>> F.A.Q. 356. (CSS2) COME POSSO INSERIRE SPAZI TRA LE LETTERE DI UN TESTO? Più che inserire spazi (che verrebbero ignorati dal browser) è possibile cambiare lo spazio fra le lettere modificando l'attributo letterSpacing dello style:
Pippo
>>> F.A.Q. 357. (CSS2) COME POSSO CAMBIARE IL VALORE DELL'ATTRIBUTO 'ALIGN'? Modificando l'attributo align dello style:

PIPPO

>>> F.A.Q. 358. (CSS2)COME POSSO CAMBIARE L'ORDINE DI SOVRAPPOSIZIONE DEI LIVELLI? Modificando l'attributo zIndex dello style:
Pippo
Pippo
>>> F.A.Q. 359. COME POSSO IMPOSTARE IL COLORE DI UN LINK QUANDO VIENE CLICCATO? È possibile intervenire sull'attributo ALINK del body, ma in maniera diversa per Netscape 4 ed IE4+/Mozilla/N6+
>>> F.A.Q. 360. COME POSSO CAMBIARE COLORE DI SFONDO DEL DOCUMENTO? È possibile intervenire sull'attributo BGCOLOR del body, ma in maniera diversa per Netscape 4 ed IE4+/Mozilla/N6+
>>> F.A.Q. 361. COME POSSO SPOSTARE IL TESTO CHE CIRCONDA UN'IMMAGINE O UN OGGETTO? Modificando la proprietà clear dell'oggetto che contiene il testo da spostare:

Questo testo,lo spostiamo perchè qui non mi piace e lo voglio mettere da un'altra parte :-)

>>> F.A.Q. 362. (IE5+ MOZILLA N6+) COME POSSO OPERARE MODIFICHE SU UN TAG "HR"? Modificando le proprietà volute (nell'esempio la larghezza e l'ombra) dell'oggetto:
noShade :

size:
>>> F.A.Q. 363. (IE5+ MOZILLA N6+) COME POSSO CLICCANDO SU UN LINK IN UNA CELLA FAR APPARIRE LA PAGINA RELATIVA NELLA CELLA ACCANTO? Immergendo un >>> F.A.Q. 364. COME POSSO FARE IN MODO CHE UN'IMMAGINE APPAIA DOPO UN CERTO NUMERO DI SECONDI? Immergendo l'immagine in un livello inizialmente invisibile, ed impostando un temporizzatore per renderlo visibile al momento voluto. >>> F.A.Q. 365. COME POSSO CHIUDERE UNA FINESTRA APERTA DA UN'ALTRA PAGINA? In una pagina "prova.htm" inserisco il link di apertura di un'altra specificando il tag : ed inserendo il link: ... dove TARGET è il nome della pagina in cui verrà aperto il link, che in questo caso è la stessa pagina "dati2.htm" Nella pagina "dati2.htm" inserisco:


Finestra da chiudere
nella pagina principale invece metto:


A questo punto posso aprire la pagina dati2.htm dalla pagina prova.htm, e chiuderla dalla principale passando con il metodo GET del form tramite l'URL il valore di una variabile che innesca la chiusura nella finestra "dati.htm". Nella pop-up a caricamento completato scatta una funzione che controlla i parametri ricevuti, se ha ricevuto "pippo" chiude la finestra dopo due secondi. >>> F.A.Q. 366. COME POSSO SCROLLARE UNA PAGINA SU E GIÙ SULL'ONMOUSEOVER DI UN LINK? Immergiamo i link in un livello che teniamo sempre visibile nell'area visibile della finestra modificandone la posizione man mano che la finestra scrolla.
Scrolla giù           Scrolla su
















































































































































































































>>> F.A.Q. 367. Come posso impedire l'uso del secondo e terzo tasto del mouse? Catturando l'evento mouseUp o mouseDown (a seconda del browser) e controllando quale tasto e' stato premuto vanifichiamo il click (con return false) o lo confermiamo con return true. . . . . . . . . . Vedi anche la F.A.Q. n. 27 per uno script alternativo ed alcuni suggerimenti. >>> F.A.Q. 369. COME POSSO NASCONDERE UN CERTO NUMERO DI LIVELLI UNO OGNI SECONDO? Li possiamo numerare progressivamente e temporizzare una funzione (con un setTimeout) che li nasconde uno alla volta usando una variabile globale come contatore.
>>> F.A.Q. 370. COME POSSO ATTIVARE O DISATTIVARE UN'EVENTO CON IE5+ E MOZILLA/N6+? Eventi

>>> F.A.Q. 371. COME POSSO GENERARE IL CONTENUTO IN UNA NUOVA PAGINA DINAMICAMENTE CON IE5+ E MOZILLA/N6+? Con il DOM2 usiamo un approccio diverso da quello, classico, usato per Netscape4 ed IE4:
>>> F.A.Q. 372. COME POSSO CAMBIARE IL COLORE DELLE BARRE DI SCORRIMENTO IN IE? Si può impostare in un foglio di stile: . . . . . . >>> F.A.Q. 373. COME POSSO MANTENERE UNA FINESTRA POP-UP SEMPRE IN PRIMO PIANO CON IE5+ E MOZILLA/N6+? Al solito è sufficiente ridare il focus quando la finestra va in secondo piano, qui vediamo come agganciare l'event-listener usando il DOM2: . . . . . . >>> F.A.Q. 374. VORREI CHE PASSANDO SU UN PULSANTE CON IL MOUSE CAMBIASSE COLORE, COME POSSO FARE? Modificando lo stule al mouseOver/mouseOut: >>> F.A.Q. 375. COME POSSO RENDERE UN CAMPO TESTO DI SOLA LETTURA IN IE5+ E NN6? Settando la proprietà readOnly all'oggetto:
>>> F.A.Q. 377. COME POSSO INSERIRE UN TESTO CAMBIANDO LA DIREZIONE DELLO STESSO IN IE5 E NN6? Modificando la proprieta' dir dell'oggetto voluto (dei paragrafi nel nostro caso):

Ciao!

Ciao a tutti

>>> F.A.Q. 378. >>> F.A.Q. 378. COME POSSO REALIZZARE L'EFFETTO NEVE? (SECONDO ESEMPIO) In questa versione dello script i singoli "fiocchi" sono dei livelli indipendenti che vengono spostati nel documento. Salvare il seguente codice in un file neve.js che dovrà poi essere richiamato nel body con Potete richiedere le immagini inviando e-mail a fabiano@jsdir.com oppure inseire quelle che preferite. >>> F.A.Q. 379. COME POSSO MOSTRARE UNA BARRA DI CARICAMENTO CHE AUMENTA IN BASE ALLO STESSO PRIMA DI MOSTRARE LA PAGINA CON LE IMMAGINI? Usiamo tre livelli, nel primo ci sarà un avviso "Caricamento in corso" immediatamente visibile e che nasconderemo a caricamento avvenuto. Nel secondo metteremo altrettanti livelli, opportunamente posizionati, quante sono le immagini, e li renderemo visibili man mano che le immagini si caricano. Le immagini saranno in un terzo livello, che all'inizio è nascosto. Ad ogni immagine associamo un event-handler onLoad, questo lancia una funzione che si occupa di rendere man mano visibili i livelli del grafico. A caricamento completamente avvenuto nascondiamo i primi due livelli e facciamo apparire quello con le immagini.
ATTENDERE CARICAMENTO IN CORSO!!
>>> F.A.Q. 376. Come posso stabilire un'ordine di tabulazione in IE5 e NN6?




>>> F.A.Q. 380. Come posso creare dinamicamente un tag APPLET con NN6 visto che non è possibile col metodo createElement? Immergendo il tag dell'APPLET nella pagina direttamente con innerHTML:
Vedi anche la F.A.Q. n. 399 per un altro esempio. >>> F.A.Q. 400. Come posso realizzare un rollover d'immagini con uno script a cui passare i parametri? Passando alla funzione sia un riferimento all'immagine da cambiare sia la URL della nuova immagine. >>> F.A.Q. 381. Come posso ricavare i valori delle descrizioni delle option di una select? Nello stesso modo con cui ricaviamo i value, ma questa volta leggiamo text:
>>> F.A.Q. 382. Come posso inserire un file .js in una nuova finestra con document.write? Usando il solito metodo del document.write() nella finestra, ma con l'accortezza di spezzare il tag di chiusura in due stringhe: apri >>> F.A.Q. 383. Come posso ricavare il nome del file html del documento visualizzato? document.URL ci restituisce il nome del documento così come lo vediamo nel campo Indirizzo (o Location) del browser. Per prendere il nome del file e' sufficiente splittare il dato restituito in un array attorno al carattere"/" ed il dato cercato sarà l'ultimo elemento dell'array. . . . . . . N.B. Questo script restituisce TUTTO l'ultimo elemento, quindi se nell'indirizzo è compresa un'ancora o una querystring verranno selezionati anch'essi. >>> F.A.Q. 384. Come posso utilizzare onMouseOver, onMouseOut o onClick su un livello con Netscape 4.x? È possibile solo utilizzando il tag e come da esempio mentre con IE4+ e Mozilla/N6+ gli eventi sui div funzionano regolarmente. Apri aaaaaaaaaaaa . . . >>> F.A.Q. 385. Come posso disabilitare il tasto CTRL mostrando un messaggio? La pressione del tasto può essere intercettata catturando l'evento KEYPRESS. Al verificarsi dell'evento controlliamo qual'è il tasto premuto usando la sintassi appropriata per i vari browser. . . . . . . >>> F.A.Q. 386. Come posso fare eseguire in loop un brano con Netscape 4.x? Bisogna avere l'accortezza di non farlo partire ad esempio con document.suono.play() ma di utilizzare solo il tag embed con gli attributi che ci servono. >>> F.A.Q. 387. Come posso creare una finestra che alla sua apertura si muova simulando un terremoto? Sfruttando il metodo moveBy() applicato alla finestra: . . . . . . >>> F.A.Q. 388. Come posso ottenere i valori dei caratteri UNICODE di una stringa? Usando il metodo charCodeAt() dell'oggetto String con una precisazione: - fino a JavaScript 1.2 il metodo restituisce il valore corrispondente alla tabella ISO-Latin-1 - da JavaScript 1.3 in poi (N4+, IE4+) restituisce il valore UNICODE Fino al 255-esimo carattere i valori coincideranno >>> F.A.Q. 389. Come posso visualizzare in un div di 100x100 px un immagine di 150x150 px visualizzandone la parte bassa al centro? Immergiamo il livello che contiene l'immagine (di 150x150 pixel) all'interno di un altro livello più piccolo (100x100) e poi spostiamo il livello interno in alto e a sinistra.
>>> F.A.Q. 390. Come posso impedire che il div prenda le dimensioni del suo contenuto? Utilizzando l'attributo overflow impostato ad hidden:
>>> F.A.Q. 391. Come posso mostrare le barre di scorrimento in un div? Impostando l'attributo overflow:scroll:
>>> F.A.Q. 392. Come posso creare un menù contestuale personalizzato che appaia alla pressione del tasto destro del mouse? Vedi lo StaffScript n. 41 >>> F.A.Q. 393. Come posso creare un menù posizionabile a destra, sinistra, basso o alto del documento? Quello che segue è un esempio. Il codice è completo e funzionante:
il menù funziona in questo modo: Qualsiasi sia la dimensione della finestra, cioè che venga ridimensionata o che rimanga normale e/o che si scrolli, il menù rimane sempre in vista ed è possibile anche spostarlo in basso, in alto, a destra o a sinistra tramite il menù stesso usando la voce "sposta"

aa

aa

aa

aa

aa

aa

aa

aa

aa

aa

aa

aa

aa

aa

aa

>>> F.A.Q. 394. (IE5.5+) Come posso scrivere in verticale in un documento? Settando la proprietà writing-mode in uno stile:
prova verticale
>>> F.A.Q. 395. Come posso impedire lo scroll orizzontale in un documento? Riportando la pagina al margine sinistro ogni volta che viene scrollata:
Livello di esempio da scrollare
>>> F.A.Q. 396. Come posso impedire lo scroll verticale in un documento? Riportando la pagina al margine superiore ogni volta che viene scrollata:
Livello di esempio da scrollare
>>> F.A.Q. 397. Come posso fare un rollover d'immagine e del testo associato allo stesso tempo? Per l'immagine facciamo il solito cambio di src, il testo invece lo cambiamo andando a scrivere il nuovo testo voluto in un livello che avremo creato apposta. >>> F.A.Q. 398. Come si fanno i link senza sottolineatura? Settando l'attributo text-decoration nello style: Per altri valori dell'attributo consulta una qualsiasi guida ai CSS. >>> F.A.Q. 399. Come si può creare un TAG APPLET con NN6 (secondo esempio)? Nell'altra >>> F.A.Q. (la numero 399) abbiamo scritto il TAG HTML nel documento, qui sfruttiamo i nuovi metodi del DOM2. . . . . . . >>> F.A.Q. 401. Come posso all'apertura della pagina evidenziare il testo di una textarea automaticamente? Usando i metodi focus() per posizionare il cursore all'interno e select() per preselezionarne il testo.
>>> F.A.Q. 402. Che differenza c'è tra display e visibility? Visibility se impostato a "hidden", nasconde l'oggetto mentre display se impostato a "none" lo rimuove, liberando lo spazio occupato dall'oggetto stesso. >>> F.A.Q. 403. (IE5+ N6+ Moz)Come posso disabilitare in scrittura 4 campi file tramite dei checkbox? Sfruttando la proprietà readOnly:

1   2    3   4
>>> F.A.Q. 404. COME POSSO AL CLICK SU UN'IMMAGINE SPOSTARLA IN ALTO NEL DOCUMENTO E FARE APPARIRE UN COMMENTO? Immergiamo le immagini ed i relativi commenti in dei livelli che sposteremo e renderemo visibili/invisibili a comando. >>> F.A.Q. 405. COME POSSO VISUALIZZARE UN ELEMENTO CHE SI MUOVE SUL DOCUMENTO? Immergendolo in un livello e spostando quest'ultimo.
Ciao!
>>> F.A.Q. 406. (IE5+) COME POSSO MOSTRARE UN MESSAGGIO CON POSSIBILITÀ DI SCELTA SE SI TENTA DI CHIUDERE UNA FINESTRA? Solo per IE5 e successivi è possibile catturare l'evento onScroll per gli altri come al solito lanciamo ciclicamente la funzione di verifica e scroll: >>> F.A.Q. 407. COME POSSO FAR SCROLLARE DUE FRAME CONTEMPORANEAMENTE? Solo per IE si può usare l'event-handler onScroll: . . . . . . . . . >>> F.A.Q. 408. Come posso richiamare una funzione sull'evento onLoad nello script stesso? >>> F.A.Q. 409. Come posso settare come home page la pagina attualmente visualizzata dal browser? É possibile farlo solo con IE, con Netscape l'utente potrebbe ricevere un avviso di sicurezza:

>>> F.A.Q. 410. Come posso cambiare una pagina da fullscreen in normale e viceversa? Apri chiudi cambia >>> F.A.Q. 411. Come posso verificare se e quali checkbox sono selezionate? Per controllare un checkbox, bisogna verificare (o settarla a true per selezionarlo) la proprietà CHECKED:
1
2
3
4

>>> F.A.Q. 412. Come posso verificare se le risposte immesse in alcuni campi testo sono corrette segnalando con un alert gli errori? In un array memorizziamo le risposte (nel nostro caso i risultati delle operazioni aritmetiche richieste, poi sarà sufficiente confrontare l'i-esimo campo testo con l'i-esimo elemento dell'array:
Quanto fa 2+2 ?
Quanto fa 3+3 ?
Quanto fa 3*4 ?

>>> F.A.Q. 413. Come posso avere un form con più di un submit? Prepariamo i vari pulsandi d'invio che ci servono, ed al click sul pulsante andiamo a settare la corretta url cui verrà inviato il form:

>>> F.A.Q. 414. Come posso aprire una finestra di dimensioni fisse che inserisca o meno le scrollbars in base alla dimensione dell'immagine caricata? Precaricando le immagini, oltre ad averle già disponibili nella cache del browser, abbiamo la possibilità di leggerne preventivamente le dimensioni e decidere se inserire le scrollbars: Apri
Apri foto grande >>> F.A.Q. 415. Come posso generare dinamicamente una tabella di 7 colonne con i giorni della settimana partendo dal giorno odierno? >>> F.A.Q. 416. Come posso inviare un form a due indirizzi e-mail diversi? Invece del tasto [SUBMIT] usiamo un normale [BUTTON], al click lanciamo una funzione che pesca uno per volta gli indirizzi e-mail da un array ed invia il form:

>>> F.A.Q. 417. Come posso risalire all'altezza di un div con IE se l'attributo height di style non è stato impostato? Andando a leggere la proprietà clientHeight che rifletterà l'altezza assunta dal livello in ragione del suo contenuto: document.all[id_div].clientHeight >>> F.A.Q. 419. Come posso impedire l'apertura delle singole pagine di un frameset, e indirizzare al frameset caricando la pagina richiesta? Inserendo il codice sottostante in ogni pagina e naturalmente sostituendo la paina menu.htm e pagina.htm con le pagine relative. >>> F.A.Q. 420. (IE-NN6/Moz)Come posso caricare il contenuto di un file txt in una pagina html? Nell'esempio che segue carichiamo il testo in un IFRAME. Al caricamento della pagina scatta la funzione che prende il contenuto dell'IFRAME e lo scrive nella pagina. >>> F.A.Q. 421. Come posso aggiungere testo in una textarea senza cancellarne il contenuto? In questo script ad ogni campo TEXT è associato un bottone che aggiunge il relativo testo alla TEXTAREA:




Le stringhe vuote aggiunte intorno ad aa servono per evitare la somma aritmetica nel caso i dati inseriti siano numerici. >>> F.A.Q. 422. Come posso inserire in automatico i valori da 0 a 300 in una select? Si possono generare le nuove opzioni usando new Option():
È necessario inserire il primo elemento per compatibilità, altrimenti la tendina non viene visualizzata. Sul riempimento dinamico di una SELECT vedi anche lo StaffScript n. 48 che dimostra il riempimento di una lista in base alla selezione effettuata in un'altra. >>> F.A.Q. 423. Come posso inserire in 10 textbox un carattere da me scelto al click su un pulsante? È sufficiente scorrere i textbox e scrivere il carattere voluto valorizzando la proprietà value:
0
1
2
3
4
5
6
7
8
9

Scrivi il carattere...
>>> F.A.Q. 424. Come si può utilizzare il tag BDO? Direzione del testo: LTR di default (LeftToRight - da sinistra a destra) RTL (RightToLeft - da destra a sinistra) Pippo Pippo >>> F.A.Q. 425. Come posso inserire automaticamente i valori dei campi testo prendendoli da un array? In modo analogo a quanto fatto nella >>> F.A.Q. n. 423, ma questa volta inseriremo nell'i-esimo textbox il valore dell'i-esimo elemento dell'array.



>>> F.A.Q. 426. Come posso effettuare il rollover su due link uguali presenti in due frame diversi? Immergiamo nei due frames la stessa funzione che cambia il colore, e le lanciamo al mouseOver/Out simultaneamente: Nel frame di sinistra:

Frame0

Nel frame di destra:

Frame1

>>> F.A.Q. 427. Come posso creare un cookie che memorizzi i dati degli utenti e li ripresenti nel form al successivo accesso alla pagina? Nello script che segue, la stessa funzione (mem()) consente sia di salvare il cookie (inviando il form) che di riprenderne i valori (all'onLoad).
nome
cognome
indirizzo
telefono
email

>>> F.A.Q. 428. Come posso avere il nome della finestra principale agendo dalla finestra figlia? È sufficiente leggere la location.href ed estrarne il nome della pagina con i normali metodi di stringa. La pagian che segue dovrebbe essere aperta da un'altra tramite window.open. (Attenzione con IE potrebbe non esserci risultato, in tal caso provare lo script online) Prova >>> F.A.Q. 429. Come posso inserire da un file.js una serie di link in un documento? Inserendo il file incluso nel punto esatto in cui si vogliono i links che sono definiti negli array iniziali e verranno scritti in automatico. var nome=new Array('Pagina1','Pagina2'); var cll=new Array('dati2.htm','princ.htm'); document.write('
'); for (i=0; i'+(nome[i])+'
'); document.write('
') >>> F.A.Q. 430. Come posso creare dinamicamente dei link a nomi e cliccando su di essi si visualizzare a destra foto e dati relativi? Nel codice che segue, i links vengono immersi nel documento, ed al click si ottiene l'effetto voluto.
>>> F.A.Q. 431. Come posso da un solo link posto nel frame superiore di un frameset cambiare la pagina presente nel frame sottostante in base alla lingua? Supponiamo di chiamare le nostre pagine con il prefisso ita_ per l'italiano e ing_ per l'inglese. Esempio: ita_prima.htm e ing_prima.htmetc. Il codice che segue va nel frame superiore: Inglese Italiano >>> F.A.Q. 432. Perchè non riesco a stampare il contenuto di un frame da un'altro? Probabilmente non hai dato il focus al frame da stampare: top.frames.Nome_frame.focus() top.framesNome_frame.print() >>> F.A.Q. 433. Come posso impedire il ritorno alla pagina precedente senza togliere le barre di navigazione? Utilizzando location.replace('tua.htm') nei link alle pagine, in quanto questo metodo non genera valori nell'oggetto history. >>> F.A.Q. 434. Perchè con NN4 aprendo una nuova finestra le dimensioni non risultano uguali a quelle impostate? Verifica che le caratteristiche della window.open, non contengano spazi dopo la virgola. Ad esempio questo è corretto: window.open('','','height=200,width=200') Questo no: window.open('','',' height=200, width=200') >>> F.A.Q. 435. Come posso inserire un conto alla rovescia visibile nella pagina che porta ad un reindirizzamento? . . . . . . . . . . . . >>> F.A.Q. 436. Come posso aprire una pop-up con le caratteristiche da me volute e passare i valori di un form nell'URL? In questo script il form viene inviato nella pop-up aperta al momento del submit.
>>> F.A.Q. 437. Come faccio a sapere il tasto del mouse cliccato nell'evento onClick? Questo script identifica il bottone premuto in un alert: >>> F.A.Q. 438. Come posso eliminare tutte le option di un select? Settando a "null" la prima e ripetendo l'operazione in un ciclo per tutte le option otteniamo di cancellare completamente la tendina: >>> F.A.Q. 439. Come posso implementare un documento XML in una pagina HTML? Con IE basta caricare l'xml come tag e recuperarne i valori: var xmlDocument = document.getElementById(id_xml).XMLDocument; ed accedere ai nomi e valori dei nodi figli con childNodes[n].nodeName e childNodes[n].text; con NN6 bisogna utilizzare invece: var xmlDocument =document.implementation.createDocument('', '', null); xmlDocument.load('nome_file.xml'); Per poter però accedere ai valori dei nodi, dovremo ancora attivare l'evento load utilizzando il metodo addEventListener: function carica() { alert(xmlDocument.documentElement.childNodes.length) } xmlDocument.addEventListener('load', carica, false); xmlDocument.load(''nome_file.xml'); Per una discussine più approfondita di XML trattato con JavaScript vedi quest'articolo. >>> F.A.Q. 440. Come posso far partire un suono presente in un frame, quando è terminato il caricamento di un'altro frame? Usiamo onLoad nel frame di controllo per far partire il suono: >>> F.A.Q. 441. Come posso identificare Opera rispetto agli altri browser? È necessario cercare la stringa "opera" nell'userAgent, altri metodi potrebbero fallire per la capacità del browser di "impersonare" varie versioni di IE o Netscape. var isOp=(navigator.userAgent.toLowerCase().indexOf('opera')!=-1)?true:false var isOp5=(isOp && navigator.userAgent.toLowerCase().indexOf('5')!=-1)?true:false >>> F.A.Q. 442. (IE)Come posso fare lo zoom di un'immagine al click su di essa? In questo esempio raddoppiamo la dimensione dell'immagine: >>> F.A.Q. 443. Come posso impostare una larghezza predefinita in pixel di un campo testo di un form? Usando width nello stile: >>> F.A.Q. 444. Come posso simulare la pressione del tasto F11 con IE? Aprendo una nuova finestra e passando "channelmode" fra le proprietà: window.open("tua.html","","channelmode,scrollbars") >>> F.A.Q. 445. Come posso da una SELECT modificare le option di un'altra in base alla scelta e da questa ad un terza?
                                               
>>> F.A.Q. 445bis. if(event.srcElement.name=="P_COPIA_SOPRA_TIPO"+ tab + "_"+ num) return; if (!document.all("CK_1_" + num).checked event.srcElement.name=="LOV_marche_assegnate_tipo1_"+num) {document.all("CK_1_" + num).click();} >>> F.A.Q. 446. Come posso fare in modo che la finestra si apra sempre a pieno schermo? Ridimensionandola al momento dell'avvenuto caricamento: N.B. Questo è un comportamento particolarmente odiato da molti utenti che non amano vedersi schizzare a pieno schermo la finestra del browser mentre stanno lavorando su altre finestre. >>> F.A.Q. 447. Come posso azzerare con una funzione una serie di variabili? Settandole a "null": >>> F.A.Q. 448. (IE)Come posso stampare solo il testo contenuto in una pagina? Possiamo catturare il testo con innerTEXT, riscriverlo e lanciare la funzione di stampa dopo un po' di tempo (mezzo secondo) necessario a far si che il browser completi la scrittura del testo.       stampa solo il testo stampa >>> F.A.Q. 449. Come posso andare a capo in un alert? Inserendo "\n" all0'interno del testo: Click >>> F.A.Q. 450. Come posso mostrare una popup senza barra del titolo? Solo con IE5.5 e successivi è possibile usare questo script: >>> F.A.Q. 451. Come posso eseguire in locale un file exe da un link html? Questo script (ovviamente solo per piattaforme Microsoft Windows), consente l'esecuzione del file, a pena pero' di avvisi di sicurezza all'utente e richieste di conferma: Apri Notepad >>> F.A.Q. 452. Che differenza c'è tra ID e NAME? L'id è un identificatore univoco dell'oggetto e non possono essercene due uguali nel documento, mentre i name non hanno questa limitazione. Vedi ad esempio i radio-button oltretutto id può essere assegnato a tutti gli oggetti e/o tag, ma solo per IE4 e successivi e NN6. In IE4 era un attributo read-only. >>> F.A.Q. 453. Tramite una funzione JavaScript è possibile verificare l'esistenza di un file, ad esempio: pippo.htm? Purtroppo no Perché JavaScript non può interagire con il file system né del server né del client. Per sapere se il file c'è sul server bisogna usare linguaggi di scripting server-side (ASP, PHP, CGI ecc), mentre per il client si potrebbe usare un ActiveX, ma è un'operazione che dovrebbe essere autorizzata dall'utente... >>> F.A.Q. 454. Come aggiornare a DOM2 gli script di Dreamweaver? Basta aprire e salvare il documento! Fermo restando che il miglior codice si scrive a mano ... [e così nessuno mi sbrana :)] comunico a chi avesse abusato delle timelines di DW 3 in passato che c'è una bella notizia. Nell'accesso ai layer, DW 3 usava solo document.all e document.layers e quindi tutto quello che riguardava tali oggetti non funzionava più con NN6. DW4 ha riscritto in parte le funzioni inserendo il ben noto e dovuto document.getElementById. Se aprite in editing un file html scritto con DW3, e apportate una minima modifica [tipo: scrivo un carattere nel testo e lo cancello] e poi risalvate la pagina, automaticamente la funzione MM_initTimelines [se non ricordo male il nome] viene aggiornata e la pagina riprende a funzionare anche su NN6. Testato su Win98 Daniele Marchesini in it.comp.lang.javascript (skylark@iol.it) >>> F.A.Q. 455. È possibile inserire un salto pagina per la stampa? Si, per Explorer basta usare questa sintassi: ...................

qui avverrà il salto di pagina ................... Attenzione: se la pagina da stampare contiene una tabella, è necessario chiuderla prima del salto pagina e riaprirla subito dopo: ...

.... Grazie a Cristiano Larghi per questa >>> F.A.Q.. >>> F.A.Q. 456. Come posso cambiare CSS a seconda del browser? Ad esempio modificando l'HREF del LINK In quest'esempio viene caricato come CSS predefinito quello per Netscape, subito dopo, se il browser è Internet Explorer, il sorgente dello stile viene cambiato. Grazie ad Alessandro Grimaldi per questa >>> F.A.Q.. Vedi anche lo StaffScript n. 072 per un'altra soluzione. >>> F.A.Q. 458. Come posso disabilitare una textbox finchè non inserisco un valore in un'altra textbox? Quando la textbox riceve il focus verifichiamo che ci sia scritto qualcosa nella prima, in caso contrario spostiamo il cursore nella prima textbox.
>>> F.A.Q. 459. Come posso selezionare automaticamente un'opzione di un select in base al testo di una textbox? In quest'esempio chiediamo all'utente di scrivere un valore ed in base a quello selezioniamo l'opzione. Questo è possibile settandone la proprietà selected a true. Valori possibili 0 - 5 - 10: < >>> F.A.Q. 460. (IE) È possibile reindirizzare in caso di pagina non trovata? Si può fare qualcosa con IE come nell'esempio che segue e che necessita di un frame per funzionare, ma non esiste una soluzione universale, anche perché se non c'è una pagina non c'è neanche uno script. . . . >>> F.A.Q. 461. Come posso consentire l'invio di un form solo se una checkbox è attivata? Leghiamo l'invio del form (onSubmit()) alla verifica sul checkbox: >>> F.A.Q. 462. Come posso ottenere la dimensione in pixel e in bytes di un'immagine? Si può precaricare l'immagine e leggerne le proprietà relative. Attenzione che la dimensione in bytes verrà restituita solo da Internet Explorer.
Rileva >>> F.A.Q. 463. Come posso rilevare il tasto che è stato premuto? In quest'esempio scriviamo in un campo testo il codice del tasto premuto e la lettera corrispondente Premi un tasto della tastiera SOLO ALFANUMERICI #######################################################################################################################--> >>> F.A.Q. 464. Come posso creare una funzione che mi calcoli l'area di un cilindro inserendo raggio e altezza? Facciamo inserire i dati in due textbox da cui li leggermo e proporremo il risultato nel terzo textbox. Inserire raggio
Inserire altezza

Volume Cilindro >>> F.A.Q. 465. (IE)Come posso aggiungere un'immagine al desktop? Solo per Internet Explorer puo' essere usato questo script sul bottone di un form: >>> F.A.Q. 466. Ho 6 copie di radiobutton, come posso cliccando su uno di una coppia disabilitare gli altri? Quando viene cliccato il RadioButton di una coppia automaticamente disabilitiamo tutti gli altri:






>>> F.A.Q. 467. Come posso controllare che in un campo i primi sei caratteri siano lettere e i 2 successivi numeri? In quest'esempio controlliamo uno per volta i caratteri, usiamo isNaN() per verificare che il carattere sia o non sia un numero:

In alternativa si possono usare le RegularExpressions per ottenere lo stesso risultato:
Il pattern impostato dall'Espressione Regolare prevede che i primi caratteri (^) siano lettere minuscole o maiuscole in numero di sei, seguite da cifre in numero di due e che queste ultime siano gli ultimi caratteri della stringa ($). Il risultato del controllo compare nel secondo textbox. Vedi anche la F.A.Q. n. 475 per un esempio simile. >>> F.A.Q. 468. Come posso far aprire una popup dalla mia homepage ad un'orario prefissato? L'esempio che segue apre una pop-up nel browser del visitatore se viene aperta la pagina alle ore 1800: >>> F.A.Q. 469. (IE5+)Come posso simulare il copia-incolla? Questo script funziona solo per IE5 e successivi e consente di salvare nella clipboard il testo selezionato e di passarlo altrove (anche in un altro programma).


>>> F.A.Q. 470. Quando è consigliato usare il costruttore Function? Il costruttore Function, associato all'operatore new, viene utilizzato per realizzare e compilare funzioni "dinamiche", cioè non compilate precedentemente. L'esigenza è specifica per pochissimi casi, infatti è poco usato, proprio perchè ogni volta che viene richiamato, deve compilare la funzione quindi se la funzione è molto utilizzata (esempio un ciclo o setTimeout etc..) conviene che sia già disponibile come una normale function() >>> F.A.Q. 471. Come posso cambiare la pagina di un'iframe? Se ne può cambiare la location come per qualsiasi frame, oppure cambiare l'attributo SRC: Cambia
Cambia2 >>> F.A.Q. 472. Perché sommando 10 tre volte non sempre ottengo 30 in JavaScript? Dipende da come viene interpretato il carattere: se come stringa o come numero. È possibile comunque convertire il carattere in numero aa=""+10+10+10 risultato 101010 aa="10"+"10"+"10" risultato 101010 aa=10+10+10 risultato 30 aa=eval("10")+eval("10")+eval("10") risultato 30 aa=parseInt("10")+parseInt("10")+parseInt("10") risultato 30 Nel caso i valori provengano da campi di un form sono invariabilmente delle stringhe, quindi per ottenere un numero prima di sommare bisogna trasformare il valore letto in numerico: >>> F.A.Q. 473. Come posso fare in modo che una finestra aperta con window.open() non abbia scroll bar neanche con IE? Basta mettere SCROLL="no" nel . Ad esempio: >>> F.A.Q. 474. Come posso stampare un documento senza stampare il bottone di stampa? Inseriamo il bottone in un livello che nascondiamo prima di lanciare la funzione di stampa: Pippo Pluto Paperino
>>> F.A.Q. 475. Come posso verificare che in un campo testo vengano inseriti solo numeri tranne l'ultimo carattere che può essere letterale? Al momento dell'invio del form controlliamo il dato immesso carattere per carattere.
In alternativa si possono usare le RegularExpressions per ottenere lo stesso risultato:
Il pattern impostato dall'Espressione Regolare prevede che i primi caratteri (^) siano cifre e che ce ne sia almeno una (+) e che l'ultimo carrattere ($) sia una lettera minuscola o maiuscola. Il risultato del controllo compare nel secondo textbox. Vedi anche la F.A.Q. n. 467 per un esempio simile. >>> F.A.Q. 476. È possibile cambiare il font dei caratteri di una lista? Si, anche se solo con IE5+/N6+/Mozilla.
>>> F.A.Q. 477. Come posso in una stringa sostituire le virgolette singole e doppie con un'altro carattere? La sostituzione di caratteri si può fare in JavaScript con il metodo replace() delle stringhe abbinato ad una RegularExpression che contiene i caratteri da sostituire: >>> F.A.Q. 478. Come posso selezionare un'opzione in una SELECT in base al valore scritto in un campo TEXT che sia simile al VALUE delle options stesse? Questo script legge nel campo TEXT il dato, e, se lo trova, fra le opzioni seleziona quella corrispondente.

Possibili scelte:
- pippo
- pluto


>>> F.A.Q. 479. Come posso cancellare un evento associato ad un elemento? In quest'esempio al click in qualunque parte del documento (immagine compresa) viene visualizzato un alert grazie all'event-handler onClick che abbiamo messo nel BODY. Se però selezioniamo il CheckBox al click sull'immagine l'evento click non viene piu' propagato al BODY. Questo meccanismo è necessario solo per Internet Explorer, dato che gli altri browser non propagano gli eventi oltre l'oggetto in cui avvengono.
>>> F.A.Q. 480. Come posso disabilitare l'hyperlink di un'immagine? In questo script se il CheckBox è selezionato il link HREF non funzionerà.
>>> F.A.Q. 481. Come posso creare dinamicamente le option di una select prelevando i valori separati da una virgola inseriti in una textarea? Una nuova opzione in un SELECT può essere generata con new Option(). Nello script prima di scrivere le nuove opzioni vengono cancellate tutte quelle già presenti.
Inserire termini separati da una virgola.



>>> F.A.Q. 482. Come posso avere un'immagine che segue il puntatore del mouse? Immergiamo l'immagine in un livello che sposteremo insieme al puntatore. >>> F.A.Q. 483. (IE5+/N6+/Mozilla)Come posso mostrare un'immagine parzialmente e completamente sull'onMouseOver della stessa? Modificando la proprietà overflow dello stile quando il mouse è sopra l'immagine o fuori da essa.
>>> F.A.Q. 484. Come posso portare una finestra in primo piano, se già aperta, al click su un altro link per l'apertura nella stessa? Possiamo ricaricarle avendo però l'accortezza di ridargli il focus. Vai
Vai 2 >>> F.A.Q. 485. Come posso evitare di far caricare la pagina in cache? Inserendo nell'head del documento: >>> F.A.Q. 486. Posso eliminare i riferimenti fissi in fase di stampa? Data, URL, ecc? No, non è possibile. I riferimenti di stampa vengono inseriti dal browser automaticamente, solo l'utente può personalizzare la sua stampa. >>> F.A.Q. 487. Scrivo dell'HTML in una pop-up con document.write(). Perché in stampa ottengo il contenuto della pagina principale invece di quello che ho scritto? Probabilmente non chiudi la pagina dopo averla scritta. Per scrivere correttamente in una popup, bisogna aprire il documento con open(), scriverci dentro con write() e poi chiuderlo con close(). Prova questo script: Stampa la pop-up Apri

Stampa >>> F.A.Q. 488. Come posso permettere la scrittura in una TEXTAREA solo se un checkbox è spuntato? Disabilitando il campo oppure togliendo gli il focus. Per la prima leggi la >>> F.A.Q. n. 403, ma è un metodo che funziona solo con i nuovi browser (IE5+ N6). Altrimenti questo script fa il lavoro in maniera perfettamente cross-browser: Disable TextArea

In pratica il checkbox modifica lo stato di una variabile globale (Scrivere) e nella textarea l'event-handler onFocus() controlla se la variabile è "true", in caso contrario toglie il focus. Provato su IE5 e NN4.7 su Win98. >>> F.A.Q. 489. È possibile in JavaScript avere una funzionte tipo TRIM che elimina gli spazi all'inizio e alla fine di una stringa? Si, è semplice farlo conle Regular Expression. Le tre funzioni seguenti realizzano il TRIM completo togliendo gli spazi all'inizio ed alla fine della stringa input e rispettivamente il TRIM a sinistra ed a destra togliendo solo gli spazi iniziali o solo quelli finali. Trim, LTrim, RTrim
Input:
Output:

- - -
>>> F.A.Q. 490. È possibile comandare la visualizzazione di un livello con la spunta su un checkbox? Si, basta collegare all'event-handler onClick del checkbox una funzione che comanda la visibilità:
Nella funzione Toggle() viene assegnata alla variabile "LayerStyle" il livello identificandolo ovviamente con la corretta sintassi richiesta dal browser in uso. Successivamente viene letto lo stato del livello che sarà "hide" per Netscape4.x oppure "hidden" per tutti gli altri browser, quindi la ricerca sulla sottostringa "hid" permette la compatibilità. Se lo stato attuale contiene "hid" allora il livello è nascosto e viene reso "visible", altrimenti viene reso "hidden". >>> F.A.Q. 491. Come posso aprire una pop-up nel punto esatto in cui è posizionato il mouse al momento del click? La >>> F.A.Q. n. 24 constente di aprirla al mouseover su un link, in questo script si agisce al click. Apri la finestra La posizione del mouse è continuamente aggiornata nelle variabili xPos e yPos e viene passata alla funzione al momento opportuno. >>> F.A.Q. 492. C'è un modo per contare la parole scritte in una textarea? Si, il modo più semplice è splittare attorno agli spazi il contenuto della textarea in un array e controllarne la lunghezza.

Questo script si occupa, prima di splittare il testo, di ripulirlo dagli spazi inseriti prima e dopo il testo (con la Trim()) e di eliminare tutti i caratteri "non validi", come le andate a capo, i segni di punteggiatura etc. Nella variabile "alpha" dovranno essere inseriti tutti i caratteri che desideriamo rimangano all'interno del testo per essere conteggiati. Attenzione: nella riga dello script dove c'è la "alpha" i caratteri / [ ^ ] g fanno parte dello script, e solo quelli in grassetto sono i caratteri da editare. >>> F.A.Q. 493. Come posso controllare se in un campo TEXT di un form è stato inserito un carattere obbligatorio? Usando il metodo indexOf() sulla stringa inserita dall'utente. Lo script di seguito invia il form solo se nel campo testo è stata inserita la virgola:
Per una panoramica più completa sulla validazione di form vedere lo script Form Validator >>> F.A.Q. 494. Vorrei comandare la selezione di due (o più) radiobutton da una'altra coppia di radio. È, possibile farlo, basta controllare, al click sui bottoni da inibire, che sia stato selezionato il bottone "si" della prima coppia. In quest'esempio la prima coppia di radio (Si/No) comanda la selezione dei radio successivi. Finché non è selezionato [SI] i radio successivi non funzioano. Scegli:
si
no

Se hai scelto si:
scelta 1
scelta 2
scelta 3
scelta 4
>>> F.A.Q. 495. Come posso far si che il testo della Status Bar rimanga fisso anche mentre il mouse è su un link? Questo script si attiva ad ogni movimento del mouse e scrive il testo nella barra di stato: Inserendolo in tutte le pagine ci eviterà di aggiungere onMouseOver e onMouseOut a tutti i links già presenti. E' una comoda soluzione se le pagine sono già scritte, ma presenta il difetto di "sfarfallare" nel senso che per un istante il link compare nella barra prima che venga scritta dallo script. >>> F.A.Q. 496. Come posso calcolare il fattoriale di un numero? Il fattoriale di un numero è abbastanza semplice da ottenere, in quanto si tratta di eseguire un semplice ciclo. Questa funzione da il risultato voluto: La funzione restituisce il fattoriale del dato in ingresso, oppure zero se il dato in ingresso è errato. Ricordo che il fattoriale è definito come segue: dato n intero positivo - il fattoriale di zero è uno: 0! = 1; - il fattoriale di n è uguale a n moltiplicato per il fattoriale di (n-1): n! = n(n-1)(n-2) ... 0! Quindi il risultato sarà sempre 1 o un intero maggiore di 1, dunque un'operazione che si può eseguire su interi positivi (0,1,2,3, ... 8) e restituisce come risultato numeri naturali (1,2,3, ... 8), per cui sono esclusi, come input, tutti i numeri minori di zero ed i decimali; il valore zero restituito dalla funzione significa che il dato in ingresso non era un operando valido. >>> F.A.Q. 497. (IE5+/N6+/Mozilla) Vorrei cambiare il colore di sfondo delle celle di una tabella al mouseover/out. È possibile farlo, per i browser indicati, modificando la classe assegnata alla cella al verificarsi degli eventi. Defininiamo per prima cosa le due classi necessarie. La classe "acceso" avrà colore giallo, la classe "spento" avrà il "rosso" e sarà la classe che assegniamo di default alle celle: Per realizzare l'effetto voluto sarà sufficiente aggiungere gli event-handler alle celle: -------- >>> F.A.Q. 498. Come bloccare l'invio di un form in presenza di dati non validi? Quando il form viene processato per prima cosa viene scatenato l'event-handler onSubmit(); se restituisce true (default) il form viene inviato, altrimenti l'invio viene bloccato. Come esempio supponiamo di avere un form con un campo "codatt" (codice di attivazione) che deve essere obbligatoriamente compilato:
Indicare il codice di attivazione:
Nell'esempio sopra verrà chiamata la function verifica_codice(); se restituisce true il form verrà inviato. >>> F.A.Q. 499. Vorrei visualizzare la console di JavaScript in Netscape4 in automatico ogni volta che si verifica un errore, senza dover scrivere "javascript:" nella location. Come posso fare? Visualizzare la console in automatico è molto comodo durante la codifica degli script, mentre puo' rivelarsi tedioso nella navigazione normale. Per attivarla è necessario intervenire sul file "prefs.js" del programma. Dopo aver chiuso tutte le istanze di Netscape (browser, posta, etc.) aprire il file "prefs.js" in un editor di testo (ad esempio il NOTEPAD) ed aggiungere in coda queste due righe: salvare e chiudere il file. La modifica sarà attiva dalla prossima volta che il browser verrà utilizzato. Il file "prefs.js" è personalizzato per ogni utente del browser ed è localizzato nella cartella: [DRIVE]:/programmi/netscape/users/[NOMEUTENTE]/prefs.js Attenzione alle modifiche di prefs.js Il file contiene la configurazione del browser, dunque viene aggiornato in continuazione del programma stesso. Se riaprite il file dopo aver eseguito e richiuso il browser vedrete che le istruzioni inserite sono state spostate in altra posizione. Questo ovviamente è normale. Inoltre se modificate il prefs.js mentre una qualsiasi istanza del browser è aperta la modifica non verrà memorizzata, perché il programma riscrive il file alla chiusura. >>> F.A.Q. 500. È possibile duplicare un array? Cioè creare un array copia di un altro distinto dal primo? Si, è possibile duplicare un array, ma non usando il segno di uguale ( = ) come per le altre variabili comuni (var a=b). Se abbiamo un array arr_1 e vogliamo copiarlo in arr_2 per lavorare su quest'ultimo lasciando il primo integro, non avrà senso fare: var arr_2 = arr_1; perché il secondo array non sarà un nuovo array, ma "puntatore" al primo. Dunque qualsiasi modifica che faremmo ad arr_2 in realtà verrebbe effettuata ad arr_1 ed arr_2 ne sarebbe solo una sorta di "specchio". L'unica maniera per duplicare un array con JavaScript è creare un secondo array e leggere tutti gli elementi dell'array originale inserendoli nell'array di destinazione. Ovviamente vogliamo che venga mantenuta la stessa indicizzazione dell'array originale e che se alcuni elementi sono a loro volta degli array (di array... di array... ecc.) vengano ricreati tali e quali. È possibile usare questa funzione per duplicare un array dentro un altro: Se abbiamo un array già definito: var MioArray = new Array("elem_1","elem_2","elem_3" ... ) e vogliamo crearne una copia per preservarlo sarà sufficiente dichiarare la nuova variabile come segue: var CopiaDiMioArray = Clone(MioArray); e potremo lavorare su CopiaDiMioArray (inserendo, cancellando o modificando degli elementi) senza che l'array originale venga modificato. >>> F.A.Q. 501. Vorrei consentire ai visitatori di scegliere una pagina del mio sito nella lista di un SELECT ed andare alla pagina scelta con un pulsante [ - Vai - ] Per realizzare questo tipo di menu è sufficiente una lista di OPTIONS che contengono nel VALUE i nomi delle pagine HTML da visualizzare (con gli eventuali percorsi) e la descrizione della pagina come testo. Lo script che si attiva all' onClick sul pulsante seleziona la pagina scelta nella lista e la carica nel browser. Ecco lo script:
La prima opzione "Scegli..." può anche essere omessa, il suo value (#) fa si che anche se l'utente clicca sul pulsante la pagina non cambi. Usando il value # è comunque possibile inserire nella lista di opzioni voci "di servizio" come separatori, titoli di sezione ecc, che comunque non comportano il cambio di pagina né alcun tipo di errore. N.B. Attenzione alla riga in rosso. È stata spezzata su due righe per necessità di impaginazione, ma va tutto su una riga togliendo i puntini e gli spazi ! ! ! >>> F.A.Q. 502. Come controllare, tramite JavaScript, se il browser ha il plugin per Acrobat Reader installato ed in caso contrario visualizzare un messaggio oppure caricare una pagina alternativa o la pagina di download di Adobe. Questo script controlla che il plugin sia installato e valorizza due variabili di conseguenza: JsDir - AcrobatReader Detect

AcrobatReader Detecting Script

Basato sul Flash Deployment Kit di Macromedia

È composto da due parti, una VBScript per IE ed una JavaScript per gli altri browser che comprendono la collecion plugins. La parte in JavaScript ovviamente si occupa anche di redirigere il browser o visualizzare un messaggio. Attenzione: tutti e due gli script (VBScript e JavaScript) sono NECESSARI al funziomanento Lo script così com'è non fa nulla, per visualizzare un commento o reindirizzare il browser è necessario togliere i commenti ( /* e */) da una delle due porzioni finali dello script. Vedi anche la F.A.Q. n. 60 per controllare la presenza del plugin per Flash. ---------------------------------------------------------------------------------------------- Testato su: [SysOp:/Browser]------[esito]---[stato]---[versione]---[tester] Win95: I Explorer 4.0 OK (N) CR Win98Osr2: Navigator 4.7 OK (I) 5.0 RR Mozilla 1.0 OK (I) 5.0 RR I Explorer5 OK (I) 5.0 RR Opera 5.12 OK (I) 5.0 RR I Explorer5.5sp2 OK (I) 5.0 CR WinME Opera 6.0 OK (I) 5.0 RR Navigator 4.7 OK (I) 5.0 RR Mozilla 1.0 OK (I) 5.0 RR I Explorer 5.5 OK (I) 5.0 RR W2Kserver Mozilla 1.0 OK (X) 5.0 RR I Explorer 5 OK (X) 5.0 RR W2Kpro Mozilla 1.0 OK (I) 5.0 Kalle I Explorer 6 OK (I) 5.0 Kalle K-Meleon 0.6 KO Kalle Opera 6.0 OK (I) 5.0 Kalle -------------------------------------- Legenda: [esito] OK = funziona senza errori KO = !OK [stato] I = Plugin Installato N = Plugin NonInstallato X = Doppio test (I + N) [versione] Versione del plugin testata [tester] RR = Riccardo {JsDir.com} Kalle = it.lavoro.professioni.webmaster CR = Cristiano Larghi (it.comp.lang.javascript) >>> F.A.Q. 503. COME VISUALIZZARE IN UN CAMPO TESTO L'ORA CORRENTE ARROTONDATA ALLA MEZZ'ORA SUCCESSIVA? La funzione che segue, qui lanciata dall'event-handler onLoad nel BODY, genera nella variabile oggi la data corrente, ed estrae in ora e minuti i due valori omonimi. Fatto questo il valore di minuti viene confrontato con "30" ed impostato a "00" o a "30" a seconda che il valore sia minore/uguale o maggiore di 30. Nella riga successiva anche l'ora viene regolata perchè deve restare invariata se il tempo e' nella prima mezz'ora ed essere incrementata se siamo nella mezz'ora successiva, tenendo conto delle "23" che devono diventare "00" all'approssimarsi della mezzanotte e che la mezzanotte deve diventare "l'una del mattino". Viene aggiunto uno zero iniziale se l'ora e' minore di 10 e costruita poi la variabile "display" che viene infine visualizzata nel campo testo. Arrotonda alla mezz'ora successiva
>>> F.A.Q. 504 COME CREARE UN TASTO PER LA STAMPA CHE NON VENGA STAMPATO!
>>> F.A.Q. 505 APRI DIV onclick="aprilink(sezione)"