Hej! Hm, låter som du måste ha någon klient-kod som exekveras när webbläsaren stängs. Mer ett problem för JavaScript i så fall... Har för mig att det fanns ett event för när användaren försökte surfa till en ny sida, men om det går att få ett event att slå när hela browsern stängs ner är jag mer osäker på... Hinner man bara få iväg ett submit innan sidan stängs så gör det ju inget om användaren stänger fönstret sedan...Event när webläsaren stängs
Jag har en aspx-sida där användaren fyller i data i olika fält och en spara-knapp
som exekverar en uppdaterings-subrutin i VB. Jag vill att denna sub exekveras
även om användaren stänger webläsaren innan han klickat på spara.
Hur kan man göra detta? Finns det något event som fångar avsluta-händelsen?
GöranSv: Event när webläsaren stängs
Kanske är det enklare om du istället gör en liten submit för varje enskilt värde när användaren skriver i de olika textfälten, antingen vid change-eventet eller kanske bättre vid blur-eventet för textfälten (i JavaScript alltså)...
Det GÅR att submitta information till en ServerSide-sida (ASP eller ASP.Net) UTAN att hela sidan/formuläret submittas och måste laddas om, vad du kan göra är att ha en liten <img>-tag som visar en osynlig GIF på 1x1 pixels, sedan använder du JavaScript som körs vid varje blur-event t ex, och som då bara sätter src-egenskapen för img-taggen och pekar denna till din ASP-sida och skickar med data i QueryString... Du kan också låta lite JavaScript köras i onError-eventet för img-taggen som ser till att den ordinarie 1x1-bilden visas om ett fel uppstår, så att användaren inte hinner märka att du försöker visa en ASP-sida istället för bilden! :-)
Lite trixigt kanske?! :-) Använde denna metod för att skicka data mellan en asp-sida och klienten utan att göra en submit, funkade fint! :-) Är också ett sätt att göra t ex en lösenordskontroll på en sida UTAN att använda ASP eller skriva lösenordet som klartext i JavaScript-koden, men det är en annan historia! :-)
Lite kod som exempel, klientkoden (OBS! hann inte testa koden, så ev. buggar bjuder jag på):
<Code>
<html>
<head>
<script type="text/javascript">
function fReset()
{
// Se till att bilden laddas om
myPic.src = 'tom.gif';
}
function fSend()
{
var obj = event.src;
// Läs av texten i aktuellt textfält
var sText = obj.value;
// Läs av kontrollens namn
var sName = obj.name;
// Skicka texten till en ASP-sida genom img-taggen
myPic.src = 'SaveData.asp?' + sName + '=' + sText;
}
</script>
</head>
<body>
<img id="myPic" src="tom.gif" onError="fReset()" border="0">
<form name="frm" action="check.asp" method="post">
<input type="text" name="txt1" onBlur="fSend()"><br>
<input type="text" name="txt2" onBlur="fSend()"><br>
<input type="submit" value="Spara">
</form>
</body>
</html>
</Code>
Du kan nu läsa av inkommande data via QueryString i sidan SaveData.asp och där köra kod för att spara information i databasen t ex. Behöver du så kan du även skicka med saker som användar-id i QueryStringen... Givetvis går det att skicka till en aspx-sida med och använda .Net-kod för att läsa av indata i Load-eventet t ex...
Lycka till!
// Ronny