Newsgroup: it.comp.lang.javascript
Titolo: coordinate tag area in ns4

con i browser serie 5+ e' possibile leggere le coordinate dei tag area
interrogando tramite la collection la relativa proprieta'
document.getElementsByTagName('area')[indice].coords
In netscape 4 vi risulta la possibilita' di accedere a qualcosa di
similmente utilizzabile?
anche in ns4 i tag area appartengono  alla collection document.links
ma 
document.links[indice].x e .y mi restituiscono in questo caso null
(mentre per i link 'ordinari' e' un valore utilizzabile]
saluti

 (mentre per i link 'ordinari' e' un valore utilizzabile]
A me restituiscono "null" anche per i link ordinari.. O_o"
.. e dire che una volta li avevo testati.. Mah.
Il problema dei tag Area, temo, e' che sono "region", e che a differenza dei
link non ti possono dare delle coordinate x/y, perche' quest'ultime si
riferiscono alla posizione del tag nel documento.
Tra l'altro, solo su IE 6 le coords funzionano riferite al tag <A>.. prima
erano di solo appannaggio dei tag <AREA>.
Ho paura, ma potrei sbagliarmi, che dovresti rinunciare all'idea. A meno di
non gestire la cosa diversamente.
--------------------------------
Inviato via 
http://usenet.libero.it

non gestire la cosa diversamente.
gia',  putroppo non posso stravolgere e al limite ns4 si tiene la
funzionalita' ridotta...
grazie comunque
ciao

 funzionalita' ridotta...
Senza stravolgere niente. Invece di riferirti alla proprieta' coords
dell'oggetto "AREA", ti crei un oggetto "mappa" tu, dove ti ricreii
esattamente i valori che ci sono in coords su IE/NN6.
In questo modo, hai l'accesso sia per IE/NN6 che per NS4.x.
La creazione dell'oggetto in questione e' piuttosto banale. Aggiungi uno
breve script, che farai girare su IE/NN6.0, che acceda ad ogni elemento AREA
e relativa proprieta' coords, e automaticamente generi il codice JS dell'
oggetto relativo.
Poi prendi quel codice lo implementi, ed elimini lo script che hai usato per
recuperare i valori.


oggetto relativo.
giusto oppure posso poi porlo come proprieta' diretta del
document.links[indice].coords appicicato da me per ns4[avendo
verificato tramite la condizione, doppia per sicurezza, che il link
abbia .text e .x == null e cioe' sia un link su tag area]
richiamando poi la stessa funzione che ho gia' fatto che non solleva
piu' eccezioni per ns4
anche se un poco mi dispiace perche' cosi' come era combinato era
piu' generalizzato e bastava caricargli gli array delle tratte tra le
localita'/nodi utili per dijkstra per ottenere dei riferimenti validi
su qualunque pagina caricata.
cosi' invece bisogna renderlo piu' pagina-dipendente
non e' che cambi molto perche' il grosso del lavoro e' poi proprio
quello di creare la base dati per l' algoritmo, pero'...
il senso dell' arte ;-
a proposito, l' unico modo per avere dei segnalini per ns4 e' crearsi
una mazzetta di layers in apertura da  posizionare in seguito non e'
che i layers nidificati possano migrare al document principale vero?
[i bambini? sotto i cavoli]
ciao

 ciao


senso dell'humor, vero? :)
naturale ma essendo carina con un buon senso dell' umorismo non
aspetta che io gli propini toscan[acci]  in quel di lombardia [senza
offesa neh? e' lei che e' cosi ;-) ] 
ciao

 offesa neh? e' lei che e' cosi ;-) ]
...
A parte che gia' mi sei meno simpatico, non ho mai visto una persona una a
cui un toscano non sia simpatico (un fiorentino, poi..! :P ).. tsk.. e che
c'entra poi la lombardia?
A proposito, tu di dove sei? E la parente? :D


A proposito, tu di dove sei? E la parente? :D
piemontese falso e cortese [e non juvntino per tua e mia soddisfazione
e tranquillita'. [aspettateci che arriviamo ;-) ]
ciao

 e tranquillita'. [aspettateci che arriviamo ;-) ]
Non ci ho capito un tubo, pero' sappi che sono acalcistico, ergo per chi
tifi non ha alcuna rilevanza per me :)


tifi non ha alcuna rilevanza per me :)
a va beh vorra' dire che il povero toro non avra' _almeno_ i tuoi
lazzi frizzi e motteggi
ma stiamo andando un po' ot 
rimedio subito e scrivo
Layer
cosi' e it
ciao alla prossima e grazie di tutto

 ciao alla prossima e grazie di tutto
De nada.


 d'adozione Riminese :)
Ma guarda, non glielo avevo mai sentito dire che Rimini lo ha segnato...

 .. bello eh? Chissa' perche' molte persone ignorano 'sta cosa..
Io un'idea ce l'avrei: la funzione Layer chi la conosce la evita.
L'ho vista usare una sola volta in uno script che, infatti, non funzionava.
NS stessa, in centinaia di pagine di documentazione la liquida in due righe
senza nemmeno accannere alle "insidie" che offre e che talvolta la rendono
viscida come una saponetta bagnata.
Ma questa č solo la mia opinione e ho cercato sempre un buon motivo per
usarla.
Maurizio.

 viscida come una saponetta bagnata.
Ti diro', in tutto questo tempo non ho mai avuto un problema serio con tale
oggetto. Dipendera' dalla versione di Nestcape, o dal suo utilizzo?
By The Way, se leggi il mio post, ho scritto la parola "ignorano" e non "non
usano".. La maggior parte della gente non e' che conosce tale oggetto e
preferesci non usarlo (che gia' sarebbe accettabile), ma "ignora" (appunto)
del tutto la sua esistenza.


 versione di Nestcape, o dal suo utilizzo?
La versione del mio NS è 4.74.
Ti sottopongo uno script, anzi, non lo sottopongo a te che troverai
rapidamente la soluzione, ma a tutti i partecipanti al ng, notoriamente
persone molto preparate. Sono sicuro che qualche difficoltà a capirne il
motivi dello strano comportamento l'avrà più di uno:
    <script>
    id = new Layer(200, window);
    id.bgColor="red"
    id.clip.width = 200;
    id.clip.height = 200;
    id.visibility = "visible"
    alert(id);
    </script>
La "stranezza", chiamiamola così, non è il fatto che il layer non viene
creato, ma il fatto che nemmeno l'alert dà segni di vita. In altre parole,
dopo  l'istruzione new Layer lo script sembra perdersi nel nulla; tutto il
resto non viene nemmeno preso in considerazione e non viene segnalato alcun
errore.
La maniera di farlo funzionare ora la conosco; ma sui manuali ci fosse un
accenno minimo a queste limitazioni. E se poi, dovendo fare uno script che
funzioni con tutti i browser, sia agevole sopportare questa limitazione, lo
lascio decidere agli altri.
Maurizio.

 motivi dello strano comportamento l'avrà più di uno:
Dai che a pagina non caricata non e' cosi' strano...

 accenno minimo a queste limitazioni.
C'e' eccome. Ti riporto il passo:
"There are a few important things to know about creating layers and 
modifying their contents dynamically. You can create a new layer object 
by using the new operator *only after the page has completely finished 
loading*. You cannot open a layer's document and write to it until the 
page has finished loading. You can have only one layer open for writing 
at a time"
La frase tra asterischi era in italico, proprio per sottolinearne 
l'importanza.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 Dai che a pagina non caricata non e' cosi' strano...
Sì? Allora come non detto...
Però se lo dici tu mica vale :-) Non mi aspettavo niente di diverso da te.
Ma, se puoi, fai capire anche me.
Io posso anche capire che l'istruzione riesca a creare il layer solo dopo
che la pagina è stata caricata. Perché ritieni ciò normale?
Per come la vedo io, la stranezza è che lo script non venga eseguito. Io mi
aspetterei che l'alert riporti "undefined', "error"; ma qualcosa me lo
dovrebbe anche dire, a meno che lo script non si fermi per errore. O no?
Questo comportamento lo avevo solo attribuito ad un bug di NS.
Ora il problema che si pone (a me) è un altro: dovendo fare un script che
funziona con tutti i browser e usando la funzione Layer, i layer devono
essere creati a caricamento terminato. Con IE posso usare
insertAdjacentHTML, ma con gli altri browser?
Maurizio.

 insertAdjacentHTML, ma con gli altri browser?
Con IE 4 usa inserAdjacentHTML, con IE>4 e gli altri browser conformi 
allo standard w3c, utilizza createElement();


 browser conformi allo standard w3c, utilizza createElement();
insertAdjacentHTML funziona anche con IE5. Comunque questo createElement č
quello che mi mancava, grazie.
Maurizio.

 quello che mi mancava, grazie.
Lo so bene, non volevo dire questo, solo che e' formalmente scorretto, 
cosi' come e' scorretto l'uso di document.all su IE>4, nonostante lo 
supportino.
Senza contare che si deve cercare di favore gli standard, almeno ci 
sono, non credi? :)


 sono, non credi? :)
Mi sono perso un "quando" nella tastiera, tra "almeno" e "ci".. ^____^;


 che la pagina è stata caricata. Perché ritieni ciò normale?
E' la prima cosa che ho pensato leggendo il tuo post perche' mi verrebbe
naturale aggiungere layer alla pagina solo dopo che questa esiste
effettivamente.
Allo stesso modo, e senza messaggi di errore, NS4.x si comporta se cerchi di
scrivere in un layer (anche scritto in html prima dello script) senza che
sia caricata la pagina.
Altro caso senza messaggi di errore quando scrivi nel documento di un layer
e non lo chiudi dopo la scrittura.

 e non lo chiudi dopo la scrittura.
E se leggete il mio post, e fate due + due, ne capirete il perche'.. :)
