Avatar billede kennethv Nybegynder
03. juli 2009 - 11:06 Der er 16 kommentarer og
1 løsning

Lukning af en side

Hvordan lukker man en side efter 10 sekunder.

Jeg har sat en timer, men hvad er koden for lukningen i C#?
Avatar billede keysersoze Guru
03. juli 2009 - 11:31 #1
Taler vi webforms? I så fald kan du ikke gøre det med C# - al C# foregår på serveren og da det er på klienten du vil lukke vinduet må du udføre klient-kode, fx javascript.

Benyttes javascript skal vinduet dog være åbnet med javascript for ikke at spørge brugeren om lov til at lukke vinduet;

setTimeout("window.close();",10000)
Avatar billede CCodam Nybegynder
03. juli 2009 - 11:35 #2
Hvis siden altid bare skal lukke10 sekunder efter den er blevet åbnet, og altså ikke når der er sket noget specielt på siden...

Så vil det letteste være at bruge Javascript på dit Body Tag:

<body onLoad="setTimeout('self.close()',10000)">


Hvor 10000 er milisekunder, og altså 10 sekunder :)
Avatar billede kennethv Nybegynder
03. juli 2009 - 12:09 #3
Jeg kunne godt tænke mig at den viste at den talte ned fra 10.

Jeg har en label sat på til foremålet.

keysersoze: Hvor putter jeg det ind henne?

CCodam: Den spørger brugeren om den må lukke. Det skal den ikke. Den skal bare lukke den uden at spørge.
Avatar billede CCodam Nybegynder
03. juli 2009 - 12:22 #4
#3 som #2 forklare så er det ikke muligt med mindre det er javascript som har åbnet siden...

Hvis du gerne vil lave noget C# der tæller ned m.m. før at siden lukkes, så kan du lave en javascript function:

<script type="text/javascript">
function closethis()
{
window.close()
}
</script>


og i din C# kalde functionen på følgende måde:

ClientScript.RegisterStartupScript(typeof(Page), "Close", "closethis();", true);
Avatar billede CCodam Nybegynder
03. juli 2009 - 12:26 #5
Det ser ud til at jeg var lift for hurtig. window.close tjekker window.opener, og hvis denner tom, kommer med en warning.

Man kan derfor forsøge at snyde den ved selv aktivt at sætte window.opener til noget.
Prøv med følgende:

<script type="text/javascript">
function closethis()
{
java script:window.opener='x';
window.close();
}
</script>
Avatar billede keysersoze Guru
03. juli 2009 - 13:20 #6
Hvis du skal have noget til at tælle ned gælder også her at det er klientside det skal ske - jeg har ikke noget færdig kode til det, men du kan igen benytte funktionen setTimeout fx til at kalde en funktion der ændrer teksten i en div.
Avatar billede kennethv Nybegynder
03. juli 2009 - 13:35 #7
Når du nævner at du ikke har noget kode, men giver et hint om at jeg kan bruge setTimeout, betyder det at det er den du ikke har noget kode til?

For jeg tror ikke helt jeg er med på, hvor jeg skal smide det ind henne.

Kan man ikk bare bruge en timer? Jeg har prøvet at smide den på, men får at vide at jeg skal bruge ScriptManager. Hvordan bruges den sammen med en timer?
Avatar billede kennethv Nybegynder
03. juli 2009 - 14:22 #8
Tror at jeg vil gøre noget andet.

Istedet for at lukke siden, så bare redirect hen til vores intranet forside. Men kan jeg bruge noget af det I allerede har nævnt og hvordan viser jeg en tæller med javascript?

Kan godt være at jeg rodder rundt i det her. Det må I undskylde.
Avatar billede keysersoze Guru
03. juli 2009 - 14:29 #9
Det betyder at jeg skal hen og bruge tid på at lede google igennem eller selv udvikle nedtælleren fra bunden - og det kan jeg ikke tilbyde at bruge tid på, men måske andre kan/vil.

<body onLoad="setTimeout('document.location.href = "http://domain.dk"',5000)">

Vil viderestille efter 5 sekunder.
Avatar billede kennethv Nybegynder
03. juli 2009 - 14:37 #10
Men det er kun hvis siden er kaldt fra javascript, korrekt?

For der sker ikke noget.

Men jeg åbner osse siden fra C#
Avatar billede windcape Praktikant
03. juli 2009 - 17:27 #11
Du åbner ikke en side fra C#. Hvis du tror det, skal du lige stoppe op i 10 minutter, og læse op på hvordan ASP.NET fungerer!

Derudover bør du slet ikke lave timed-redirects, det er aldrig en god ide!
Avatar billede keysersoze Guru
03. juli 2009 - 17:42 #12
som skrevet et par gange - C# fungerer på serveren, HTML/CSS/JavaScript på klienten. C# kan outputte ting klienten kan forstår og klienten kan kalde C# (i form af et sidekald) - men serverside-sprog kan ikke få ting til at ske på klienten og klientside-sprog kan ikke få ting til at ske på serveren.
Avatar billede kennethv Nybegynder
03. august 2009 - 08:46 #13
Jeg har fået løst dette problem med javascript.
Avatar billede keysersoze Guru
03. august 2009 - 09:12 #14
hvilket vel også er præcist hvad der er foreslået - så hvorfor beholder du point?
Avatar billede kennethv Nybegynder
03. august 2009 - 09:29 #15
ja, det er osse en fejl. Det var slet ikke denne her der skulle have været lukket sådanne her.

Hvad gør man så nu for at point kan blive givet?
Avatar billede kennethv Nybegynder
03. august 2009 - 09:48 #16
Jeg kan oprette et nyt spørgsmål. Det er ihvertfald som jeg lige kan gennemskue for at du kan få point.
Avatar billede keysersoze Guru
03. august 2009 - 19:08 #17
Det er også den eneste måde det kan lade sig gøre på - som "spørgsmål" laver du bare en reference hertil.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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