Newsgroup: it.comp.lang.javascript
Titolo: aiuto Messaggio di conferma obbligatoria

Salve a tutti ho un problema
allora il mio sito è costituito da frames e voglio fare uno script che
quando si chiude la finestra, in qualsiasi pagina il client si trovi ( del
mio sito ), compaia un messaggio "confirm" che chieda al client di firmare
il guest book e che se seglie annulla allora esce dal mio sito se seglie
okei il broswer lo manda nella  pagina dove c'è il guestbook da firmare.
--
Josuke Higashikata
------------------------
Membro del Jojo Fan Club
------------------------
Autore della home page italiana dedicata a JOJO NO KIMIYONA BOKEN
HIROHIKO ARAKI'S WORLD
http://www.geocities.com/Tokyo/Dojo/9043/index.html
ARAKI'S WORLD II
http://www.fortunecity.com/marina/greatpier/103/index.html
BAOH HOME PAGE
http://www.geocities.com/Tokyo/Dojo/9043/baoh.htm
JOJO NO KIMIYONA BOKEN MOVIES
http://members.tripod.com/~josuke/index.html
HIROHIKO ARAKI'S WORLD MULTIMEDIA
http://members.xoom.it/josuke/index.html
CAPCOM'S FIGHTING GAME
http://www.fortunecity.com/marina/greatpier/103/capcom.htm

okei il broswer lo manda nella  pagina dove c'è il guestbook da firmare.
[...]
Agli ordini, capo!    :-)
Questa è la pagina principale che conterrà tutti i frames...
<html>
<head>
<script>
function RunGuestBook()
{
    if (confirm("Vuoi fare una visitina al mio guestbook?"))
        open("INDIRIZZO_GUESTBOOK.htm","_blank");
// NON USARE self.location.href="INDIRIZZO_GUESTBOOK.htm" o simili
// perché se stai chiudendo il browser il riferimento punta ad un
// oggetto in fase di distruzione --> errore di protezione gen.
}
</script>
</head>
<FRAMESET onunload="RunGuestBook()" ROWS="200,*">
    <FRAME SRC="a.htm">
    <FRAME SRC="b.htm">
</FRAMESET>
<NOFRAME>
[.....]
</NOFRAME>
</html>
P.S.: il guestbook verrà aperto ogni volta che chiudi il browser, navighi al di fuori del frameset, o quando aggiorni.
Ciao!
By
D                                                                                             .D
|  a                                                                                          s a
|      r                       (
www.infotronica.it/darius/
)                  u   r   
|          i                                                                                  i      i
|              u                                                                           r         u
|                  s                                                                    a             s
L---------------  .                    D a r i u s !                       D                   .          .     .   .  . ...

 wrote in message
7i98s9$b45$1...@serv1.iunet.it...

[...]
Agli ordini, capo!    :-)







Ciao!
By
graziasssss
devo ancora provarlo ma sembra molto valido come suggerimentoo :)

    // NON USARE self.location.href="INDIRIZZO_GUESTBOOK.htm" o simili
    // perché se stai chiudendo il browser il riferimento punta ad un
    // oggetto in fase di distruzione --> errore di protezione gen.
Scherzavo: è un errore di pagina, comunque la situazione è la stessa.
Ciao!
Darius. (
www.infotronica.it/darius/
)

 wrote in message
7i9oro$ddh$1...@serv1.iunet.it...


Ciao!
Darius. (
www.infotronica.it/darius/
)
grazie di tutto ma adesso che ci penso per renderlo ancora piu
perfetto...non sapresti mica come fare per utilizzare lo script con i cookie
in modo tale che verifichi che il client ha effettivamente aperto una volta
la pagina dove si firma il guest book .........e che la volta successiva in
cui chiude il sito non compare piu il messaggio.
si puo fare?

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset,
endstr));
}
function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }
  return null;
}
function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "")
+
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}
Var Lingua=GetCookie ("Guest") ;
if(!Guest){
location.guest.htm
file://da li setti la variabile
      Guest=true;
file://poi
      SetCookie ("Guest", Guest, "data di durata del
cookie", null, null,null);
}
--
Bye
Ro<*¿*>berto

 }
e poi quel file://poi
è l'url di che??? della pagina dove si trova il guestbook?
grazie per avermi risposto .....
cmq

Ecco il codice con i cookies:
<html>
<head>
<script src="cookies.js"></script>
<script>
function RunGuestBook()
{
    if ((GetCookie("bVisited")!=1) && (confirm("Vuoi fare una visitina al mio guestbook?")))
    {
        var expdate = new Date();
        expdate.setTime(expdate.getTime() +  (24 * 60 * 60 * 1000 * 365));
        var docpath = document.location.path;
        SetCookie("bVisited",1, expdate, docpath, null, false);
        open("INDIRIZZO_GUESTBOOK.htm","_blank");
    }
}
</script>
</head>
<frameset onunload="RunGuestBook()" ROWS="200,*">
    <FRAME SRC="a.htm">
    <FRAME SRC="asd.htm">
</frameset>
</html>
Purtroppo è una soluzione un po' "poco professionale", perché mentre su IE va alla perfezione, su Netscape alla chiusura non fa un bel niente: direi che Navigator ignora l'attributo onunload del tag <frameset> :-(((((.
In tal caso si potrebbe... boh? Se mi viene qualcosa in mente ti faccio sapere.
Ed ecco il file "cookies.js", che conviene mettere in comune con altre pagine che potrebbero usare i cookies...
function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }
  return null;
}
function SetCookie (name, value) {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (2 < argc) ? argv[2] : null;
  var path = (3 < argc) ? argv[3] : null;
  var domain = (4 < argc) ? argv[4] : null;
  var secure = (5 < argc) ? argv[5] : false;
  document.cookie = name + "=" + escape (value) +
     ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
     ((path == null) ? "" : ("; path=" + path)) +
     ((domain == null) ? "" : ("; domain=" + domain)) +
        ((secure == true) ? "; secure" : "");
}
Ciao. 
Darius. (
www.infotronica.it/darius/
)

GetCookie("bVisited"),
ti ritorna undefined in N se il cookie non è stato creato,
credo che sia
sufficiente mettere if(!GetCookie("bVisited") && confirm...
Bho..., non l'ho provato


.. fa niente, guarda il codice di Darius, è ben fatto !!


 è l'url di che??? della pagina dove si trova il guestbook?
LOL! Quel file://poi e' un bug di OE5 (ops... it is not a bug, it is a
feature...), che pensa che se scrivi qualcosa dopo i segni // sia da
interpretare come un link ad un file. Prova a rispondere al mio messaggio,
scrivi // seguiti da qualsiasi cosa (senza spazi!), OE5 automaticamente ci
aggiunge "file:" davanti!
--
ciao
gelty
--
Visita 
http://www.sifor.it
Elimina *toglimi* per le risposte

 wrote in message
7icb8k$2e7$1...@serv1.iunet.it...



</frameset>
</html>



function getCookieVal (offset) {



Ciao.
Darius. (
www.infotronica.it/darius/
)
ciaooo Darius e grazie di tutto ma c'è un piccolo problema.............il
funzionamento è corretto o quasi
perchè se gli dico di andare all'url prestabilito...........mentre chiudo il
broswer metto okei  e non mi compare la pagina....ma si chiude solo la
pagina che contiene i frames.....senza aprire la pagina del guestbook.....
mentre se faccio Reload....funziona tutto a dovere.....
si puo fare qualcosa o è solo un bugs riscontrato da me?
io uso IE5


okei grazie lo stessoooo