Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    posizionamento div FF e IE6

    scusate, ma non riesco a capire cosa trova di sbagliato Firefox in questa istruzione per posizionare un div:

    document.getElementById("contenitore").style.top=1 00;

    (con IE6 funziona)
    ---------------
    manos arriba
    esto es un robo
    ---------------
    http://www.maxesilvia.it

  2. #2
    document.getElementById("contenitore").style.top=1 00 + 'px';

  3. #3
    niente da fare

    IE6 funziona, ma FireFox non ne vuol sapere

    del resto trova proprio un errore, perchè il window.alert che gli ho piazzato dopo non lo esegue


    cmq grazie
    ---------------
    manos arriba
    esto es un robo
    ---------------
    http://www.maxesilvia.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Posta qualcosa di piu` del tuo codice.
    Il <div> a cui lo applichi deve essere definito con:
    <div id="contenitore">

    e il CSS relativo dovrebbe avere uno dei seguenti:
    position:absolute;
    position:relative;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    eccolo (non volevo annoiarvi con sbrodolate di codice)
    Questa è lo script che sto testando con IE6 e FF

    l'istruzione incriminata è stata sopra riportata in versione semplificata per vedere dove effettivamente FF trovava intoppi
    codice:
    <meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
    <meta content="MSHTML 6.00.2800.1479" name=GENERATOR>
    <script language=JavaScript type=text/javascript>
    ...
    function inizializza() { 
           if (document.all) { 
              documento="document.all"; 
             parA="[\""; 
             parB="\"]"; 
             alto=".style.top"; 
             sinistra=".style.left";
             versione="seminuova";        
           } 
           else if (document.layers) { 
             documento="document.layers"; 
             parA="[\""; 
             parB="\"]"; 
             alto=".top";
             sinistra=".left";
             versione="vecchia";  
           } 
           if (document.getElementById) { 
             documento="document.getElementById";  
             parA="(\""; 
             parB="\")"; 
             alto=".style.top";
             sinistra=".style.left";
             versione="nuova";  
           } 
    inizializza()    
    var bbx = 0;
    var bby = 0;
    
    function centra(livello,corpox,corpoy) {
             if (versione == "nuova") {
                b_toty = document.documentElement.offsetHeight;
                b_totx = document.documentElement.offsetWidth;
             }
             else if (versione == "seminuova") {   
                b_toty = document.body.offsetHeight;
                b_totx = document.body.offsetWidth;
             }
             else if (versione == "vecchia") {
                b_toty = window.innerHeight;
                b_totx = window.innerWidth;       
             }
             bbx=Math.round((b_totx-corpox)/2);
             bby=Math.round((b_toty-corpoy)/2);
    eval(documento+parA+livello+parB+alto+"="+bby+";");
    eval(documento+parA+livello+parB+sinistra+"="+bbx+";"); 
             }
    // -->
    </script>
    
    <style type="text/css">
    <!--
    body {
    	background-color: #000000;
    	font-family: Georgia, "Times New Roman", Times, serif;
    	margin: 0px;
    	padding: 0px;
    	border: 0px none;
    }
    #Contenitore {
            top:0px;
            left:0px;	
            width:589px;
            height:420px;        
    	position:absolute;
            background-color: #FFFFFF;
    }
    #Livello1 {
    	width:60px;
    	height:190px;
    	left:350px;
    	top:70px;
    	position:absolute;
    	z-index:1;
    	visibility:visible;
            background-color: #666666;
    }
    -->
    </style>
    </head>
    <body onLoad="centra("contenitore",588,420)"; onResize="centra("contenitore",588,420)";>
    <div id=Contenitore> 
      <div id="Livello1"> 
      </div>
    </div>
    ...........
    Questo script in realtà è un "modellino" che mi son fatto ad hoc per provare le istruzioni che poi, una volta testate, inserirò nel sito vero e proprio.

    Edit: Ho modificato il messaggio aggiungendo i marcatori [ c o d e ] per visualizzare meglio. Mich_
    ---------------
    manos arriba
    esto es un robo
    ---------------
    http://www.maxesilvia.it

  6. #6
    risultato

    (IE6 = ok, FF = ko)
    ---------------
    manos arriba
    esto es un robo
    ---------------
    http://www.maxesilvia.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    eval() e` decisamente da evitare.

    Comunque tu usi tre script diversi a seconda del browser, e questo puo` fare la differenza.

    Non vedo la graffa di chiusura della funzione inizializza()

    Dentro le parentesi di getElementById() ci vanno virgolette o apici, se non si tratta di parametro. E nel tuo caso, usando eval() ce le devi mettere.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    ok la graffa di chiusura nello script c'era, l'ho dimenticata nel post

    gli apici attorno al nome "documento" sono già contenuti, insieme alla parentesi, nei campi parA e parB

    è possibile che non gli piaccia il fomato dei valori bby e bbx che è numerico, e che magari lo voglia in formato "testo"???

    tra l'altro che differenza c'è tra usare Math.round o invece ParseInt ???

    perchè eval() è da evitare?
    ---------------
    manos arriba
    esto es un robo
    ---------------
    http://www.maxesilvia.it

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    con Math.round 1.5 diventa 2
    con parseInt diventa 1
    (senza contare che "100px" diventa 100)

    l' eval e' oneroso, nel 90% dei casi inutile e ridondante
    in futuro non sara' supportato

    dov e' nel tuo script il +'px' che dovrebbe permettergli di funzionare in FF?

  10. #10
    eval(documento+parA+livello+parB+alto+"="+bby+"\+\ 'px\'"+";");
    eval(documento+parA+livello+parB+sinistra+"="+bbx+ "\+\'px\'"+";");


    IE6 funziona

    FireFox no

    ho provato anche dando l'istruzione diretta (senza eval())
    ---------------
    manos arriba
    esto es un robo
    ---------------
    http://www.maxesilvia.it

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.