Avatar billede Søren Bech Morsing Praktikant
07. april 2004 - 08:33 Der er 6 kommentarer og
1 løsning

popup kan man få sådan en væk automatisk igen

// Hvis jeg nu skriver
alert("din session udløber om 2 minutter");
// Kan jeg så få den væk igen automatisk?

Det jeg gerne vil er at jeg 2 minutter før session.timeout viser boxen og vil så når session.timeout er 15 sekunder automatisk refrehser siden.
Måske jeg skal bruge et popup vindue i stedet?
Avatar billede roenving Novice
07. april 2004 - 15:41 #1
Under alle omstændigheder skal du have styret timingen !o]

alert-boxe kan kun fjernes ved at brugeren trykker 'Ok', så det er ikke så brugbart til meddelelser, som ikke kræver bruger-indgreb ...

Men umiddelbart lyder det som det du har brug for er en flydende layer, som bliver synlig, når der er 2 minutter af session tilbage (ca. for du kan aldrig gøre den helt sikker, når der skal kommunikeres over indernettet !-)


Altså sådan noget:

<div id="sessDiv" style="position:absolute;left:600px;top:400px;height:75px;width:150px;background:#c70;color:red;font-size:x-large;font-family:vaerdana,sans-serif;display:none;">Din session udløber om ca. 2 minutter</div>

Når du så skriver siden, skriver du et timestamp et sted, som et javascript kan tage fat i, f.eks.

<script type="text/javascript">
var sessTO = <?=session.timeout?>; //eksemplet skal selvfølgelig tilpasses dit script-sprog;
//Og jeg går her ud fra, at du bruger unix-time ligesom javascript, men det er nemt at lave om ...

var t = 0;
var tid = new Date();
tid = tid.getTime() - sessTO;
setTimeout('visTO()',tid-120000);
function visTO(){
  if(t==0){
    document.getElementById('sessDiv').display='block';
    setTimeout('visTO',15000);
    t++;
  }else if(t==1){
    document.getElementById('sessDiv').display='none';
    setTimeout('visTO',60000);
    t++;
  }else
    document.getElementById('sessDiv').innerHTML = "Siden vil blive refreshet om 30 sekunder";
    document.getElementById('sessDiv').display='block';
    setInterval('taelned()',1000);
    t = 30;
  }
}
function taelned(){
  --t;
  if(t==0){
    document.getElementById('sessDiv').innerHTML = "Nu refreshes siden !-)";
    location.reload(true);
  }else{
    document.getElementById('sessDiv').innerHTML = "Siden vil blive refreshet om "+ t + " sekund" + ((t==1)?"":"er");
  }
}
Avatar billede Søren Bech Morsing Praktikant
07. april 2004 - 15:56 #2
tak for det - jeg hælder mere til javascript popup.
- kender layers og deres "ustyrlighed" på forskellige platforme/browsere

Så jeg siger tak og god påske
Avatar billede roenving Novice
07. april 2004 - 15:58 #3
Du skal tilbage til NS4 eller IE4, for at ovenstående ikke virker ...

-- og i lige måde !-)
Avatar billede Søren Bech Morsing Praktikant
08. april 2004 - 09:34 #4
ok svar bare - jeg genbruger det meste af dit svar - vælger blot popup i stedet.
Avatar billede roenving Novice
08. april 2004 - 12:06 #5
Velbekomme '-)
Avatar billede Søren Bech Morsing Praktikant
10. juni 2004 - 20:06 #6
ps layers og så browsere til mac (ved ikke med linux?)
- men mac og layers flyver rundt.
Avatar billede roenving Novice
10. juni 2004 - 22:37 #7
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging