Ho bisogno di fare in modo che da un frame "A" (cioè con istruzioni presenti solo nella pagina che si trova in "A") venga disegnato un layer in sovrimpressione (z-index molto alto) in un frame "B" in modo da gestire tuuto da "A" senza dovermi preoccupare di inserire codice in ogni pagina che occuperà il frame "B", come posso fare
document.write ?
innerHTML?
....?

naturlamente client e il più possibile crossbrowser (di Opera non mi interessa)

Grazie.

(°) LUXX
Chi sa dica, chi non sa chieda.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
puoi inserire il layer nella pagina, fin dall'inizio.
Cioè, lo includi proprio nel codice HTML come se dovesse rimanere sempre in sovraimpressione.

Fatto questo, puoi decidere di nasconderlo/farlo riapparire modificando una proprietà:

per nasconderlo:
document.getElementById("nomelayer").style.display = "none"

per farlo apparire:
document.getElementById("nomelayer").style.display = "block"

il fatto che si trovi in un'altro frame non costituisce un problema... ti basta integrare le linee qui sopra in questo modo:

top.nomeframe.document.getElementById("nomelayer").style.display = "block"

Modificato da BrightSoul il 22 maggio 2003 20.57 -

Enjoy learning and just keep making
Ti ringrazio BrightSoul, ma lì c'ero già anch'io, in effetti le mie pagine sono strutturate proprio in questo modo e non c'è pbm per far visualizzare il layer "inferiore" con le proprietà di getElementById e con lo style (visible o inline, hidden o none che sia), anche in un frame diverso.

Il vero problema è quello di generare il layer nel frame inferiore dal frame superiore, perchè dovendo inserire decine di pagine nel frame inferiore volevo evitare di inserire codice in ogni pagina.


(°) LUXX
Chi sa dica, chi non sa chieda.
11.886 messaggi dal 09 febbraio 2002
Contributi
uff.. nel postare il messaggio è andata in errore la pagina e ho perso tutto quello che avevo scritto.
Scusami, ripeto brevemente:
non puoi usare document.write perchè altrimenti ti viene sovrascritta la pagina sottostante.
Potresti usare innerHTML per riempire una cella con il codice del layer ma questo presuppone che tu abbia una cella adatta allo scopo in ogni pagina... e siamo di punto a capo.
Non hai un file incluso (lato server o lato client)? Che so... la connessione al db, il piè di pagina...
fa sempre comodo avere un file incluso, ti permette di fare piccole modifiche globali cambiando un solo file. Puoi mettere il codice js lì dentro.
Usa questa roba:
<script language="Javascript" src="fileincluso.js"></script>
vedrai che ti tornerà utile anche in futuro.

perchè dovendo inserire decine di pagine

eh ho capito... putroppo le pagine anche se sono dinamiche non si creano da sole...
Buon lavoro :)

Enjoy learning and just keep making
Ho provato con innerHTML "agganciato" al body, l'unica maniera per visualizzare il layer è stata questa:
setTimeout("parent.sotto.document.body.innerHTML=('<DIV id=bannerx style=position:absolute;z-index:999;top:0;left:200;width:468;height:400;background-color:#E1E1E1;layer-background-color:#E1E1E1;visibility:visible>contenuto del layer</DIV>')", 50);


il layer compare nel frame "sotto", solo che pur "rilevando" le proprietà definite nello style, quindi id, colori, posizione, dimensione, in realtà continua a far sparire ogni contenuto della pagina salvo il colore di sfondo.
E' come se ignorasse le proprietà "absolute" e "z-index" del livello, che dovrebbero far sì che il layer sia in "sovrimpressione" proprio perchè "layer" cioè livello.
Con una funzioncina show/hide ho provato a nasconderlo e farlo ricomparire e funziona, quindi in effetti c'è, ma ...
????


(°) LUXX
Chi sa dica, chi non sa chieda.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.