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

    Div visibile/invisibile con eval

    Ciao, questo codice mi da un errore , il debugger mi dice "costante string senza terminazione". Ho provato a chiudere con una }, ho provato a mettere delle altre virgolette, ho provato a cancellare i commenti (non si sa mai). Ho dato un occhiata al resto delle formule e la sintassi è uguale, quindi non trovo l'errore... ovviamente lo script non è farina del mio sacco e di conseguenza, trovare il sicuramente evidente errore, mi riesce impossibile. Grazie in anticipo.


    Codice PHP:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"

    <
    html
    <
    head

    <
    style type="text/css"

    #mioLiv { 
     
    position:absolute
     
    background-color:orange
     
    width:300px
     
    height:20px
     
    border:1px
     
    visibility:visible

    </
    style

    <
    script type="text/javaScript"

    function 
    inizializza(){ 
     if (
    document.all) { 
       
       
    // creo le variabili per la sintassi di IE 
       
    documento="document.all"

       
    /* notare le virgolette precedute dall'escape ("), 
        * che si sono rese necessarie, per mantenere inalterata 
        * la sinassi e per non incorrere in errori
        */ 

       
    parA="[""; 
       parB=""]"

       
    visibilita=".style.visibility"
       
    nascosto=""hidden""
       
    visibile=""visible""
     } 
     else if (
    document.layers){ //NN4 
       
    documento="document.layers"
       
    parA="[""; 
       parB=""]"

       
    visibilita=".visibility"
       
    nascosto=""hide""
       
    visibile=""show""
     } 
     else if (
    document.getElementById) { // Opera e NN6 
       
    documento="document.getElementById"
       
    parA="(""; 
       parB="")"

       
    visibilita=".style.visibility"
       
    nascosto=""hidden""
       
    visibile=""visible""
     } 


    function 
    nascondi() { 

     
    /* eseguo l'istruzione tramite eval, 
        come somma di variabili */
     
    eval(documento+parA+"mioLiv"+parB+visibilita+"="+nascosto+";"); 


    function 
    mostra() { 

     
    /* istruzione identica alla precedente, 
        soltando che rende visbile */
     
    eval(documento+parA+"mioLiv"+parB+visibilita+"="+visibile+";"); 



    inizializza(); //lancio la funzione che inizializza le variabili 

    </script> 
    </head> 
    <body> 

     
    [url="javascript:nascondi();"]nascondi il livello[/url]
     
    [url="javascript:mostra();"]mostra il livello[/url] 
     
    <div id="mioLiv">




    </DIV> 

    </body> 
    </html> 

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013

    Re: Div visibile/invisibile con eval

    A dire il vero mancano tutti gli escape oppure il forum li ha tolti: ""a" non va bene, dovrebbe essere "\"a" se il forum mi passa il back-slash prima della seconda virgoletta.
    codice:
    <html> 
    <head> 
    
    <style type="text/css"> 
    
    #mioLiv { 
     position:absolute; 
     background-color:orange; 
     width:300px; 
     height:20px; 
     border:1px; 
     visibility:visible; 
    } 
    </style> 
    
    <script type="text/javaScript"> 
    
    function inizializza(){ 
     if (document.all) { 
       
       // creo le variabili per la sintassi di IE 
       documento="document.all"; 
    
       /* notare le virgolette precedute dall'escape ("), 
        * che si sono rese necessarie, per mantenere inalterata 
        * la sinassi e per non incorrere in errori
        */ 
    
       parA="[\""; 
       parB="\"]"; 
       visibilita=".style.visibility"; 
       nascosto="\"hidden\""; 
       visibile="\"visible\""; 
     } 
     else if (document.layers){ //NN4 
       documento="document.layers"; 
       parA="[\""; 
       parB="\"]"; 
       visibilita=".visibility"; 
       nascosto="\"hide\""; 
       visibile="\"show\""; 
     } 
     else if (document.getElementById) { // Opera e NN6 
       documento="document.getElementById"; 
       parA="(\""; 
       parB="\")"; 
       visibilita=".style.visibility"; 
       nascosto="\"hidden\""; 
       visibile="\"visible\""; 
     } 
    } 
    
    function nascondi() { 
    
     /* eseguo l'istruzione tramite eval, 
        come somma di variabili */
     eval(documento+parA+"mioLiv"+parB+visibilita+"="+nascosto+";"); 
    } 
    
    function mostra() { 
    
     /* istruzione identica alla precedente, 
        soltando che rende visbile */
     eval(documento+parA+"mioLiv"+parB+visibilita+"="+visibile+";"); 
    
    } 
    
    inizializza(); //lancio la funzione che inizializza le variabili 
    
    </script> 
    </head> 
    <body> 
    
     
    nascondi il livello
     
    mostra il livello 
     
    <div id="mioLiv">
    
    
    
    
    </DIV> 
    
    </body> 
    </html>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Ciao, per prima cosa grazie, ho modificato la pagina incollando il codice che mi hai dato. Poi mi sono accorto di un piccolo errore, questa volta nel html:

    nascondi il livello

    mostra il livello


    Questo era sbagliato, e l'ho cambiato con:

    Nascondi il livello

    Mostra il livello


    Ora l'effetto è quello voluto


  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    sì, con l'unico piccolo problema che href="#" ha la scortese caratteristica di scrollare fino al top la pagina che stai clickando... per evitare puoi mischiare le carte della prima soluzione:

    href="javascript:;" onclick="funzione_javascript();"
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Ah beh, ma qui arriviamo alla perfezione

    Grazie ancora

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.