Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Layer "generato" in altro frame...

    Ho bisogno di "generare" un layer in un frame diverso da quello principale (dove inserisco la funzione):
    Ho provato con innerHTML "agganciato" al body del frame "sotto", l'unica maniera per visualizzare il layer è stata questa:
    codice:
    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);
    ora, il layer compare nel frame "sotto", solo che pur "rilevando" le proprietà definite nello style, quindi 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 ...
    ????
    PS: il codice è spezzato perchè se lascio spazi tra le proprietà definite in style non funziona.
    Luxx (°)
    Chi sa dica, chi non sa chieda.

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    innerHTML cancella il contenuto e lo sostituisce quindi devi crearti già il div magari nascosto e poi renderlo visibile opuure aggiungere al contenuto il div

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    OK! mi arrendo, ho provato anche con document.Write
    codice:
    document.write('<DIV id="bannerx" style="position:absolute; top:0; left:200;  width:468; height:60; background-color:#E1E1E1; layer-background-color:#E1E1E1; visibility:visible">contenuto layer</DIV>');
    parent.sotto.document.write('<DIV id="bannerx" style="position:absolute; top:0; left:200;  width:468; height:400; background-color:#C0C0C0; layer-background-color:#C0C0C0; visibility:visible">contenuto layer</DIV>');
    In questo caso perchè se "scrivo" il layer nella stessa pagina lo vedo in sovrimpressione e se lo scrivo in un frame diverso "cancella" tutto?

    Se qualcuno mi dice, con certezza, che non è possibile "disegnare" un layer in un frame diverso, mi arrendo e mi do al "copia&incolla"
    Luxx (°)
    Chi sa dica, chi non sa chieda.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    document.write è peggio perchè sicuramente sostituisce con quello che scrivi tutto il documento,
    l' innerHTML è + indicato ma devi avere già un livello nel documento
    (è quello che cercava di dirti oronze)
    altrimenti puoi aggiungere un livello nel documento sfruttando il DOM (leggi tutto l' articolo) ma non è pienamente compatibile,
    ciao

  5. #5
    Grazie per il consiglio, in definitiva, quel che serviva era il metodo
    "getElementByTagName", e anche sapere che innerHTML per agiunger va scritto con "+=", grazie a consigli anche di altri ho poi risolto così:
    codice:
    setTimeout("parent.frame_di_sotto.document.getElementsByTagName('body')[0].innerHTML+= ('<DIV id=nome_layer style=position:absolute;z-index:99;top:0;left:200;width:468;height:400;background-color:#E1E1E1;layer-background-color:#E1E1E1;visibility:visible;>contenuto del layer</DIV>')", 50);
    Una nota a beneficio di tutti:
    le caratteristiche del layer specificate nello style vanno scritte senza spazi tra l'una e l'altra, provate con gli spazi per vedere la differenza.
    Luxx (°)
    Chi sa dica, chi non sa chieda.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.