webForumDet fria alternativet

Hindra att besökare laddar om sidan?

JavaScript

24 svar · 1 055 visningar · startad av vic

Medlem sedan apr. 2006244 inlägg
Frågan#1

Hallåj!

Jag vet att detta är en konstig förfrågan men jag skulle vilja få tag på ett script som inaktiverar F5-knappen och gärna även Ctrl-knappen på besökarens tangentbord. Besökaren skall alltså inte kunna ladda om sidan eller öppna ett nytt fönster när dom är inne på en viss del av min sida, är detta möjligt?

Mvh

Vic

Medlem sedan maj 20012 237 inlägg
#2

Ge upp, direkt.

Medlem sedan apr. 2006244 inlägg
#3

he he, Men det borde väll gå att det öppnas en alertbox om man trycker ner knappen Ctrl eller F5 som förklarar varför man inte bör ladda om sidan?

Medlem sedan feb. 20032 532 inlägg
#4

Varför ska du ha detta? Bara en fråga...

Medlem sedan maj 20012 237 inlägg
#5

Ja, man kan förhinda t ex att personen kan högerklicka och få fram källkoden (html) men det kraschar då man stänger av javascript. ;)

Medlem sedan juni 20006 022 inlägg
#6

Kan det inte bara stå varför man inte bör ladda om sidan?

Medlem sedan maj 20031 472 inlägg
#7

[OT]
Är det till IDGs kommentarfunktion?
"Var god att ej ladda om sidan då du postar ditt inlägg igen" :)
[/OT]

Handlar det om att det postas data?

Medlem sedan apr. 2006244 inlägg
#8

Detta är inte alls något patetiskt försök att dölja källkoden!

Det handlar om en plattform för webbaserade kunskapstester av olika slag. När testen "går på tid" kan användaren lätt börja om med hela testet bara genom att uppdatera i webbläsaren eller öppna ett nytt fönster. Istället för att tvinga kunden, varifrån testen utförs, att typ pilla bort vissa knappar från tangentbordet skulle jag behöva något som tar bort möjligheten för avnändaren att fuska genom ovan nämda sätt. Att javascript kan vara inaktiverat hos användaren är inget att oroa sig för i detta fall.

// Ja ja... jag har läst på lite och får väl försöka fixa det själv om ingen vill vara just och hjälpa till :)

Medlem sedan juni 20006 022 inlägg
#9

Man kan ju alltid stänga ner webbläsaren och börja om?

Medlem sedan apr. 2006244 inlägg
#10

visst är det så men jag tror mer det finns en risk för att man skulle kunna råka ladda om sidan, det behöver inte nödvändigtvis vara för att fuska. Det enklaste vore att skriva någonstans att man ej bör ladda om sidan men jag skulle tycka att det vore trevligare :) om sidan bara varnade användaren om att man ej bör ladda om sidan, om denne försöker ladda om sidan.

Medlem sedan maj 20031 472 inlägg
#11

Jag fattar inte varför en reload skulle starta om testet...
Hur ser testet ut? Kör du med sessions eller?

Medlem sedan apr. 2006244 inlägg
#12

kör på sessioner men det har ju ingenting med det här och göra. Om avnändaren gör ett test som går på tid är det en javascript som tickar ner från ett visst antal minuter, när tiden är ute omdirigeras användaren till sidan som rättar och tömmer sessionen mm...

Javascriptet som håller ordning på tiden finns i en frame vilkt gör det möjligt för användaren att navigera runt bland frågorna (olika sidor) men om han/hon laddar om webbläsaren, alternativt öppnar ettt nytt fönster så börjar javascriptet om från start igen.

Edit:

hehe, nu har jag lyckats med att visa en alertbox så fort man trycker ner en tangent, nu behöver jag bara berätta för scriptet vilka tangenter som skall trigga alertboxen, eller? hjälp :q :e

<html>
<head>

<script type="text/javascript">
<!--
function disp_alert()
{
if()
alert("I am an alert box!!")
}
-->
</script>

</head>

<body onkeypress="disp_alert()" ></body>

</html>
Medlem sedan maj 20031 472 inlägg
#13

Varför kör du inte tidtagningen på servern då?

Medlem sedan apr. 2006244 inlägg
#14

tja men hur skall jag visa det för användaren?

// jag skall ge det ett försök

Medlem sedan maj 20031 472 inlägg
#15

Du har en räknare på server-sidan sedan skicka ut tiden till ett javascript. Då kan javascriptet visa hur länge det har gått hela tiden med tiden som skickas till den som bas.

Medlem sedan apr. 2006244 inlägg
#16

hjälp! finns det någon färdig funktion för det i PHP?

Medlem sedan dec. 19996 721 inlägg
#17

Låt servern tillhandahålla starttiden till klock-javascriptet, och lagra tiden i session el. dyl. Om man laddar om efter 3 minuter så startar klockan på 3 min.

Medlem sedan maj 20031 472 inlägg
#18

emission skrev:

Låt servern tillhandahålla starttiden till klock-javascriptet, och lagra tiden i session el. dyl. Om man laddar om efter 3 minuter så startar klockan på 3 min.

Haha, detta är samma som jag sa. Fast här kan andra än jag förstå det :)

Medlem sedan apr. 2006244 inlägg
#19

jo jag hänger med men hur jag får servern att räkna ner har jag ingen susning om inser jag... sat*n jag tror jag får lämna det som det är...

/Edit: okej nu fattar jag :e får testa!

Medlem sedan maj 20031 472 inlägg
#20

När du startar:

$_SESSION['Starttid'] = time();

Värdet som du ska skicka till javascriptet:

$sekundersomgatt = time() - $_SESSION['Starttid'];

Nått sånt borde väl funka

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)