Kan man göra så att en sida i ett frameset inte laddas om om man trycker F5 eller uppdaterar via "Uppdateraknappen" i webbläsaren?
Kanske går med något annat än JavaScript men det var den första tanken som slog mig...
Har en "dold frame" som öppnar en popupruta när en besökare lämnar sidan för att sätta ett värde så att han/hon får statusen offline...
Skulle man köra popupen på varje sida så blir det ju lite problem...
En tanke som slår mig är att jag undrar varför användaren måste uppdatera sidan?
Jag menar det går väl att styra upp själv med meta-taggen?
Och om det nu inte skulle vara en bra lösning så tror jag väl att man på något sätt borde kunna pilla ihop något litet javascript som laddar om sidan (just den sida som behöver laddas om då) via en knapp på själva sidan... med onclick eller så...
Och slutligen en sista tanke, egentligen en vidareutveckling på meta taggs tanken, om det är ett helt framesett du vill uppdatera fast inte just den där dolda framen så kan du ju alltid skapa ett frameset med huvudinnehålls ramen, och den dolda ramen, och i huvudinnehålls ramen lägger du ett nytt frameset, och på det nya frameset:et kan du ju köra en meta-tagg...
Eller också så är jag bara ute och cyklar alldeles för sent ;)
Jag skulle ha gjort en lösning vi asp (därför att jag inte kan javascript så bra, men går säkert att göra samma i js) som ser ut som följer.
If Request.QueryString("update") = "ja" Then
'javascript koden här
End If
Så när man uppdaterar sidan så körs inte koden, för update är inte "ja". När man sedan vill uppdatera länkar man till sidan med tex sida.asp?update=ja då kommer koden köras men inte annars!
Det är ett forum så man använder nog uppdatera lite då och då. ;)
Dessvärre så går inte det du hade tänkt dig mozilla för det blir ju ganska krångligt för besökaren att skriva en massa grejer när man ska uppdatera sidan. :l
Det finns ju så man kan navigera m.h.a olika knappar i JavaScript, kan man inte bara göra så att om man trycker F5 så händer inget, då har man ju F5 fixad iallafall...
Kan man göra så att en sida i ett frameset inte laddas om om man trycker F5 eller uppdaterar via "Uppdateraknappen" i webbläsaren?
hmm... meningen är väll att besökaren själv inte ska kunna uppdatera den framen? Utan bara när man loggar ut eller liknande?
Det är ju precis det koden gör? När användaren trycker på "update" händer det inget med koden i den framen, dock i alla andra. När du sedan vill köra koden skriver du bara (i asp)
Response.Redirect "sida.asp?update=ja"
först då körs koden. solbullens förslag är dock bättre om du har kunskaper och server att använda tex asp. Söka på sessions i asp forumet så får du nog lite mer hjälp.
Kan sessionhantering +mer därtill, vet dock inte riktigt hur han menar.
Det som ligger i framen som "inte får uppdateras" är en kod som fixar lite olika uppgifter(t.ex om han/hon är online/offline) om besökaren bara stänger webbläsaren eller surfar vidare.
Ska testa en idé jag just fick....
Jupp, det löste sig snabbt och bra. :)
Jag inkluderar en kod på varje sida som fixar till värdena om besökarens session inte är tom(med andra ord om besökaren är inloggad).
Fungerar fint. :)
Om man har ett script som triggas av "onUnload" körs ju hur som helst om du uppdaterar sidan "manuellt" med F5 och då fungerar det väl inte att göra som du föreslår?
jag vet inte riktigt om jag läst fel? Men det står ju inte laddas? Om skriptet bara körs när Request.QueryString("update") = "ja" så körs det ju inte på Uppdatera eller F5? För vad jag vet så lägger den själv inte på ?update=ja när man trycker på F5 eller Uppdatera knappen? Kan ju lägga till att den koden jag skrev, var bara för att man inte vill att koden ska köras på F5 eller uppdatera... hur man ska lösa de andra är en annan femma ;)
Jo.. men om du kommit in på en sida med adressen: sida.asp?update=ja och uppdaterar på ett eller annat sätt, så inte blir du av med ?update=ja på kuppen?
Du har rätt i att innan man kommit så långt körs ju inte koden men när man väl är där kan den köras om o om igen vid uppdatering.
645 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e