Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583

    < è minore oppure un tag?

    Ho trovato questo script che genera un effetto carino su www.24fun.com
    Funziona, solo che copiandolo in una pagina (provate) all'inizio della function "startshake" il segno "<" viene interpretato (con IE) come l'apertura di un Tag invece che "minore"
    Ripeto: funziona, cioé legge correttamente durante l'esecuzione, mentre durante la costruzione (visualizza HTML) tutte le istruzioni che seguono sono visualizzate in colore diverso, tipo errore, perché l'editor si aspetta un ">" di chiusura.
    Come si può ovviare ed essere sicuri che il browser non incappi in errori?

    <html> <head>
    <meta name="generator" content="Namo WebEditor v5.0(Trial)">
    <SCRIPT language="JavaScript">
    var oldtext
    var newtext
    var newlink
    var speed=10
    var i_speed=1.1
    var i_text=1
    var timer

    function startshake(thislink) {
    if (document.all) {
    newlink=eval("document.getElementById('"+thislink+ "')")
    oldtext=newlink.childNodes[0].nodeValue
    shaketext()
    }
    }

    function shaketext() {
    if (speed<=200) {
    if (i_text<0) {newtext=oldtext+" "}
    else if (i_text>0) {newtext=" "+oldtext}
    newlink.childNodes[0].nodeValue=newtext;
    i_text=i_text*-1
    speed=speed*i_speed
    timer=setTimeout("shaketext()",speed)
    }
    else {
    clearTimeout(timer)
    speed=20
    newlink.childNodes[0].nodeValue=oldtext;
    }
    }
    </script> </HEAD> <BODY>



    Porta il cursore qua sopra</p>
    </BODY> </HTML>

    Solo per curiosità
    ciao rudyF

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Quando non e` un tag, il segno < va convertito in &amp;lt;
    idem il segno > in &amp;gt;; il & in &amp;amp;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    Grazie Mich, per la risposta.
    Lo script non lo riconosce, dà errore e l'effetto non funziona.
    Questa anomalia la dà solo IE o anche altri browser?
    Ciao rudyF

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    Si potrebbe cambiare l'espressione in modo di non usare "<"
    es.: if l'intero di speed - 200 = 0 significa che speed vale 200 o meno di 200
    ho provato, ma me la cavo solo con VBScript e come l'ho scritta la funzione non va

    if ((int(speed - 200)) = 0) {

    Provaci tu.
    rudyF

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    scusa
    così come l'ho scritta è una cavolata perché se speed è minore di 200 il risultato è negativo e non zero
    Quindi se esiste l'istruzione che controlla se un numero è negativo o positivo, bene, altrimenti si potrebbe convertire il risultato in una stringa e controllare il primo carattere: se è un segno "-" ...

    rudyF

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: Io, confesso, non ho capito il problema. Ho preso il tuo codice (1° post) e l'ho copiato in una paginetta di prova html.

    Ho formattato un po' per capire e, con IE e con FireFox funziona, e non si verificano cose strane

    Pietro

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Dipende da come sono manipolate le stringhe.

    La prima volta che un &amp;gt; viene elaborato, viene trasformato in >. Ad esempio fai un "quote" di questo messaggio e vedi come ho dovuto scrivere il &amp;gt; per fartelo leggere correttamente. Magari lo stesso trucco funziona per il tuo problema.

    A volte si risolve mettendo lo script in un file a parte;
    altre volte anteponendo dei backslash (uno, due, tre, ...) ai caratteri che non devono venir interpretati. Nota: ad ogni passaggio viene "mangiato" una backslash ed ogni coppia di backslash viene trasformata in singola.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    oppure bastava dare un id al link

    codice:
    <html> <head> 
    <meta name="generator" content="Namo WebEditor v5.0(Trial)"> 
    <SCRIPT language="JavaScript"> 
    var oldtext 
    var newtext 
    var newlink 
    var speed=10 
    var i_speed=1.1 
    var i_text=1 
    var timer 
    
    function startshake(thislink) { 
    if (document.all) { 
    newlink=eval("document.getElementById('"+thislink+"')") 
    oldtext=newlink.childNodes[0].nodeValue 
    shaketext() 
    } 
    } 
    
    function shaketext() { 
    if (speed<=200) { 
    if (i_text<0) {newtext=oldtext+" "} 
    else if (i_text>0) {newtext=" "+oldtext} 
    newlink.childNodes[0].nodeValue=newtext; 
    i_text=i_text*-1 
    speed=speed*i_speed 
    timer=setTimeout("shaketext()",speed) 
    } 
    else { 
    clearTimeout(timer) 
    speed=20 
    newlink.childNodes[0].nodeValue=oldtext; 
    } 
    } 
    </script> </HEAD> <BODY> 
    
    
    
    Porta il cursore qua sopra</p> 
    </BODY> </HTML>
    e tutto funziona (con IE ...)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    Forse non mi sono spiegato bene
    Lo script funziona correttamente e non dà nessun errore (con IE)
    però quando vado a vedere la pagina usando l'editor, dopo il famigerato "<" le righe sono di colore rosso tipico dell'errore e allora mi sono chiesto: va bene, con IE funziona, ma con gli altri browser?
    Così per sicurezza vorrei cambiare l'istruzione eliminando il "<"

    in VBScript farei:

    xx = CStr(speed - 201)
    'se speed è minore di 200 xx sarà un numero negativo
    if left(xx, 1) = "-" then .........

    E' solo uno sfizio perché, ripeto, con IE funziona così com'è.
    Ciao rudyF

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non vedo come possa influire l'errore che un editor di testo introduce sull'interpretazione del codice su come un browser (con interprete piu' evoluto e testato) interpreta lo stesso codice per rappresentarlo in una pagina reale... :master:

    Piu' semplicemente cambia editor

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.