Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1

    Errore script popup foto

    Ciao a tutti,
    sto utilizzando il seguente script per visualizzare delle fotografie in una popup:
    codice:
    <script LANGUAGE="JavaScript">
    
    <!-- Begin
    function PrevFoto(img){
      foto1= new Image();
      foto1.src=(img);
      Controlla(img);
    }
    function Controlla(img){
      if((foto1.width!=0)&&(foto1.height!=0)){
        viewFoto(img);
      }
      else{
        funzione="Controlla('"+img+"')";
        intervallo=setTimeout(funzione,20);
      }
    }
    function viewFoto(img){
      largh=foto1.width+20;
      altez=foto1.height+25;
      stringa="width="+largh+",height="+altez;
      finestra=window.open(img,"",stringa);
    }
    //  End -->
    </script>
    la funzione la richiamo così:
    codice:
    Response.Write("
    <a HREF=javascript:PrevFoto('/public/case/" & rs("fotomedia") & "')>VEDI FOTO PUBBLICATA</a>( " & rs("fotomedia") & " )")
    c'è però un problema, se il nome del file (rs("fotomedia")) contiene un apostrofo lo script va in errore.
    E' possibile sistemare il tutto?
    Cosa devo modificare?

    Fatemi sapere.
    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    devi fare il replace degli apici ' con backslash-apice \'
    e ti consiglio di delimitare il valore dell'href con le virgolette
    codice:
    strfotomedia = rs("fotomedia")
    if isNull(strfotomedia) then strfotomedia=""
    strfotomedia = Replace(strfotomedia,"'","\'")
    Response.Write("
     VEDI FOTO PUBBLICATA ( " & rs("fotomedia") & " )")

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    il forum cambia un po' quello che si scrive... il replace sarebbe
    codice:
    strfotomedia = Replace(strfotomedia,"'","\'")

  4. #4
    Ok, immaginavo... però è possibile fare il replace sullo script piuttosto che sul richiamo della funzione?

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da pegaso22
    è possibile fare il replace sullo script piuttosto che sul richiamo della funzione?
    :master: non ho capito...

  6. #6
    Cerco di spiegarmi meglio:
    al posto di fare il replace quando richiamo la funzione, cioè come mi hai segnalato tu, è possibile fare il replace direttamente nello script?
    Cioè passare il valore con l'apostrofo e poi trasformarlo nello script?
    Sper di essere stato più chiaro... ne dubito!!

    Fammi sapere.

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da pegaso22
    Sper di essere stato più chiaro... ne dubito!!
    dubiti bene

    il fatto è questo: una stringa javascript delimitata da apici non può contenere apici altrimenti troncherebbero la stringa prematuramente.
    Quindi il replace devi farlo lato server.
    Se invece volevi sapere se si può fare tutto nella stessa riga del response.write (ne dubito)
    puoi fare così
    codice:
    Response.Write("
     VEDI FOTO PUBBLICATA ( " & rs("fotomedia") & " )")
    però se rs("fotomedia") è null il replace ti genera un errore

  8. #8
    No, mi son veramente rispiegato male.
    Ti posto questo script che ho appena pescato da google e che fa forse ciò che ti sto chiedendo:
    codice:
    <SCRIPT LANGUAGE="javascript">
    
    // --- Sostituzione dell'apice singolo (apostrofo)
    aa="l'asterisco";
    bb=aa.replace(/[\']/g,"`")
    alert(bb)
    
    // --- Sostituzione dell'apice doppio (virgolette)
    cc='Pippo"e"Pluto'
    dd=cc.replace(/[\"]/g,"`")
    alert(dd)
    
    </SCRIPT>
    Ora è meglio?
    E' giusto questo script?
    Posso integrarlo nelle mie funzioni?

  9. #9
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    quello che hai postato tu è codice lato client.
    Serve per fare il replace degli apici con un altro tipo di apice
    però se hai notato le stringhe sono delimitate da virgolette.
    C'è poco da fare... ti faccio degli esempi di stringhe

    str1 = "stringa con \"virgolette\" e l'apostrofo";
    str2 = 'stringa con "virgolette" e l\'apostrofo';

    str3 = "stringa con "virgolette" e l'apostrofo";
    str4 = 'stringa con "virgolette" e l'apostrofo';

    str1 e str2 sono corrette
    str3 e str4 generano errore

    la tua stringa javascript è il parametro di questa funzione
    codice:
    PrevFoto('/public/case/valore di fotomedia.jpg');
    che è delimitata da apici, perciò eventuali apici all'interno di essa devono essere preceduti da una backslash \'

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da willybit
    quello che hai postato tu è codice lato client.
    Serve per fare il replace degli apici con un altro tipo di apice
    però se hai notato le stringhe sono delimitate da virgolette.
    C'è poco da fare... ti faccio degli esempi di stringhe
    codice:
    str1 = "stringa con \"virgolette\" e l'apostrofo";
    str2 = 'stringa con "virgolette" e l\'apostrofo';
    
    str3 = "stringa con "virgolette" e l'apostrofo";
    str4 = 'stringa con "virgolette" e l'apostrofo';
    
    str1 e str2 sono corrette
    str3 e str4 generano errore
    la tua stringa javascript è il parametro di questa funzione
    codice:
    PrevFoto('/public/case/valore di fotomedia.jpg');
    che è delimitata da apici, perciò eventuali apici all'interno di essa devono essere preceduti da una backslash \'

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.