Newsgroup: it.comp.lang.javascript
Titolo: Crossbrowsare questo script

Devo rendere questo script Netscape compatibile, qualche suggerimento?
function show(object)
{
   if (document.all)
   {
       document.all[object].style.visibility = "visible";
       document.all[object].style.display = "list-item";
    }
}
ho provato con
if (document.layers)
   document.layers[object].display = "list-item";
però NS rimane freddo ed impassibile! è proprio un cattivone :)
Ciao
Giuseppe Di Natale
gdin...@camomillaitalia.it
------------------------------------------
JS Labs - FAQ di it.comp.lang.javascript
http://jslabs.webhostme.com
FlyScript by JS Labs, JS in 3 click
http://jslabs.webhostme.com/servizi/flyscript/
------------------------------------------

 perņ NS rimane freddo ed impassibile! č proprio un cattivone :)


'Annaggia non funge! Altre idee?


 >


Scusate l'eventuale mia ignoranza, ma dal piccolo della mia piccola
esperienza in JS, mi è sembrato notare che per NS si usi piuttosto
window.ecc.ecc che document.ecc.ecc. In questo modo ho potuto notare come
negli script si riesca a tirar fuori qualunque informazione da qualunque
oggetto (anche i layers). Poi quello che devi mettere dopo window devi
verdertela tu che sai esattamente quello che vuoi farne.
Ciao
Thierry


 'Annaggia non funge! Altre idee?
Dipende da chi è "object": se è realmente un oggetto (quindi non una stringa
con il nome dell'oggetto!) devi usare il suo ID per poterlo indicizzare nel
layer in quel modo:
    document.layers[
object.id
]....
Per risolvere le ambiguità, cmq, converrebbe usare la DHTML.js:
    showLayer(object, true)
    setLayerStyle(object,"display",valore)
in quel caso è la libreria che si occupa di controllare se "object" è un
[Object Layer], o una stringa con il nome del layer, o un indice numerico.
Il passaggio del semplice nome del layer, invece, non è ammesso, ma solo
supportato da Explorer, quindi una riga del tipo:
show(nomeLayer)
con Netscape nella maggior parte dei casi non funzionerà, se non metti le
virgolette:
show("nomeLayer")
Per quanto riguarda invece quella bruttissima proprietà chiamata "display",
alla fine si era concluso che era meglio dimenticarla che studiarla e
usarla, per tutti i vari problemi di gestione e compatibilità che si porta
dietro... :(
<Ðarius style="position:absolute; color:fair; background-color:green;
y-index:20;">
Bye.
</Ðarius>

 ha scritto nel messaggio
news:8bjmvu$ken$1...@pegasus.tiscalinet.it...


Ciao Darius,
ho provato ad usare la dHTML.js però genera degli errori se nella pagina ci
sono delle form (ver. 1.0.5).


 sono delle form (ver. 1.0.5).
Mandami tutta la pagina via email: in questi giorni non so quanto riuscirò a
seguire il NG, ma gli darò un'occhiata e ti farò sapere...
Alla prox.
--


 sono delle form (ver. 1.0.5).
Dunque... ho appena guardato bene il comportamento dei browser di fronte a
layers e forms...
Con IE, c'era effettivamente un piccolo bug nella libreria che ora ho
corretto (con questo siamo alla versione 1.0.8 - stai aggiornando su JSLabs?
;)
E' dunque possibile inserire liberamente dei <form> dentro i layer, e agire
su questi ultimi tramite le funzioni della dhtml.js.
E' invece meglio evitare di mettere un layer dentro un form, in quanto
Netscape taglierą il collegamento tra il form e gli oggetti interni al
layer, che saranno trattati come se il tag <form> non fosse proprio stato
definito...
Ecco una paginetta di esempio (usa la dhtml.js versione 1.0.8):
<HTML>
<HEAD>
 <SCRIPT SRC="dhtml.js"></script>
</HEAD>
<BODY>
 <div id="d1" style="position:relative; visibility:visible;">
 <form name="f1">
 <input name=inp>
 </form>
 </div>
 <form name="f2">
 <input type=button value="mostra/nascondi"
onclick="showLayer('d1',!getLayerStyle('d1','visibility'))">
 </form>
</BODY>
</HTML>
Fammi sapere...
Alla prox.
----------
<Šarius style="position:absolute; color:fair; background-color:green;
y-index:20;">
Bye.
</Šarius>