Newsgroup: it.comp.lang.javascript
Titolo: prototype -- aggiungere una proprietà all'oggetto Image

mi riferisco a una funzionalità poco documentata ma presente in javascript
pare sin dalla versione 1.1
se ho una classe Circle, da cui genero un oggetto con 
p.es
.
unCerchio = new Circle();
allora l'istruzione
Circle.prototype.pi = 3.14.159
dovrebbe aggiungere a tutte le istanze di Circle la proprietà pi.
Tutte? non ho capito veramente se si riferisce a tutte le nuove istanze
(create dopo l'aggiunta) o a tutte tutte, anche quelle già esistenti.
Comunque, a me piacerebbe (per motivi miei di vario genere) poter aggiungere
una proprietà agli oggetti Image, in particolare vorrei poter assegnare un
valore supplementare (una stringa, anzi per essere più precisi un url) in
modo da far si che ogni immagine in una pagina ne abbia uno.
In altre parole se per esempio ho nel mio documento un'immagine
<img src="pollo.gif" name="pollo">
vorrei poter accedere a document.pollo.altrourl accanto a
document.pollo.src, e vorrei ovviamente non dover aggiungere questa
proprietà alle singole istanze ma averla disponibile da subito, nella classe
Image.
stando agli esempi, che ho trovato tra l'altro anche all'interno di MSDN
Library,
mi pare che dovrei poterlo fare con
Image.prototype.altrourl = "gallo.gif" ;
ora, con Netscape 4.7 funziona, con Internet Explorer 6 no. Non ho in questo
momento un IE 5 sottomano.
In IE6 riesco però ad aggiungere così proprietà a String e ad altri oggetti,
ma non a Image.
perchè no? dove sta il cavillo? oppure ho proprio commesso qualche errore di
battitura banalissimo e dormendo in piedi non me ne sono accorta?
Rossella

 battitura banalissimo e dormendo in piedi non me ne sono accorta?
Purtroppo no.
.. Non c'e' niente da fare. NS rimane il migliore per quanto riguarda 
codice JS (qualcuno ha parlato di watch/unwatch? Di mimetypes? Di un 
pulmino per una spedizione punitiva alla Microsoft?)
BTW.. A che ti serve associare una stringa "di default" alle immagini?
Suppongo che tu cmq debba assegnare a ciascuno la sua, no..? E non una 
"globale".. o sbaglio?
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 "globale".. o sbaglio?
Si, ogni immagine ha la sua stringa, ma viene assegnata da javascript
dinamicamente, attraverso un input da parte dell'utente, il valore iniziale
ovviamente è solo temporaneo e mi piaceva l'idea di tenere sott'occhio l'url
selezionato, associandolo direttamente all'immagine a cui era collegato,
senza usare variabili per così dire "esterne" all'oggetto a cui si
riferiscono. In realtà posso vedere di attaccare l'url all'istanza invece
che alla classe... ma così, se potevo aggiungerla direttamente alla classe
mi pareva meglio, più pulito chiaro ed elegante.
ti ringrazio moltissimo per l'ottima risposta!
ciao,
Rossella

 ti ringrazio moltissimo per l'ottima risposta!
Di niente, figurati.. Anzi, mi ha fatto piacere trovare una persona 
preparata, che si e' andata a beccare un "difetto" che non tutti 
conoscono :)


 mi pareva meglio, più pulito chiaro ed elegante.
Forse nel mio piccolo (di JavaScript avanzato intendo :-) posso darvi il mio 
contributo.
Ho letto tempo fa (ma non ricordo dove, forse qui: 
http://www.xs4all.nl/~ppk/js/index.html
) che con IE si possono aggiungere 
impunemente degli attributi ai tag standard.
Tipo che ad IMG si puo' fare una cosa del genere:
<IMG SRC= ... MIOATTRIBUTO="pippo">
Magari puo' servirti, se non ricordo male ci si puo' accedere via 
document.images.nomeimmagne.nomeattributo
Intanto vedo se in giornata pesco fra le mie cartacce la stampa che mi ero 
fatto forse un anno fa.
Riguardava la validazione dei form.
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

 document.images.nomeimmagne.nomeattributo
Anche con NS6+ si puote.
Gli attributi aggiuntivi possono essere sia scritti nel codice HTML che
settati da script:
oggetto.setAttribute("nomeAttributo","valoreAttributo");
Per leggerlo, correttamente, si usa oggetto.getAttribute("nomeAttributo").
IE, come tu dici, lo considera anche proprieta' dell'oggetto js.

 document.images.nomeimmagne.nomeattributo
Era quello di cui stavamo parlando. :)
L'aggiunta di attributi da codice la puoi fare anche su NS4.x.
L'aggiunta di attributi HTML la puoi fare su IE e NN6, ovvero tutti quelli
che supportano il DOM w3c (document.getElementById, document.getAttribute,
document.setAttribute, etc..)
--------------------------------
Inviato via 
http://usenet.libero.it

 <IMG SRC= ... MIOATTRIBUTO="pippo">
potrebbe servire ad aggirare il problema. Potrei prototipizzare la classe in
NS e usare contemporaneamente questo sistema per IE.
Nel caso su cui sto lavorando adesso in realtà credo mi convenga
semplicemente lavorare sulle istanze, a questo punto mettere un mioattributo
manualmente in tutti gli img in html non mi va tanto :-)
Ma in futuro chissà che non serva, è sempre utile da ricordare :-), grazie
per il contributo!
Rossella

> Potrei prototipizzare la classe
:-))))
Bellissima, questa me la segno accanto a clickare, mergiare,splittare...

 Bellissima, questa me la segno accanto a clickare, mergiare,splittare...
tsk, non ci vedo niente di strano, e' linguaggio comune tra sviluppatori..
:P
(hai dimenticato "codare" e "sendare", che sono i miei termini piu' usati..
^_^)


 Bellissima, questa me la segno accanto a clickare, mergiare,splittare...
e confesso di non essermene nemmeno accorta! di solito cliccare splittare
scannare (sic :-) etc almeno mi accorgo di stare dicendo orrori, ma
prototipizzare mi sembrava a posto... ho bisogno di una vacanza, dě?

Bad news: nella stampa non ho la URL, cmq puoi provare a fare una ricerca con 
questa stringa:
"A Library of Regular Expressions for Form Validation"
che e' il titolo del tutorial.
L'autore e' "Alexander Nakhimovsky"
