webForumDet fria alternativet

Disable bakstegsknappen

JavaScript

27 svar · 705 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Hur förhindrar man så att man inte kan trycka på bakstegsknappen på en sida?

/Andreas

Medlem sedan nov. 20017 144 inlägg
#2

Det är ju taskigt ju... :l

Sök på "bakåtknapp" eller "bakåt och klicka", eller något om du absolut måste.

Medlem sedan jan. 20013 406 inlägg
#3

Inte bakåt kanppen i webbläsaren utan bakstegsknappen på tangentbordet. Den knapp som raderar till vänster om markören. Visserligen fungerar den knappen som en webbsidesbakåthopparknapp. Men jag vill att när man trycker på den knappen så ska inget hända.

Medlem sedan nov. 20017 144 inlägg
#4

med en replace kanske

Medlem sedan jan. 20013 406 inlägg
#5

Hur gör man det då?

Medlem sedan nov. 20017 144 inlägg
Medlem sedan jan. 20013 406 inlägg
#7

Förstår fortfarande inte hur det ska hjälpa mig med att om man trycker på bakstegsknappen så går webbläsaren bakåt eller raderar ett tecken.. Den ska ju inte göra det.

Medlem sedan nov. 20017 144 inlägg
#8

Du kan ju lägga in det direkt i fältet också:

<input type="text" onKeyup="this.value=this.value.replace(/^\s+|\s+$/g,'');">
Medlem sedan nov. 20017 144 inlägg
#9

Ha, ha, nu fattar jag, du menar den där raderaknappen(som man nästan använder mest ;))
Men det går nog på någe vis, jag vet inte, faktiskt.

Medlem sedan jan. 20013 406 inlägg
#10

Precis

Medlem sedan dec. 20025 483 inlägg
#11

Fungerar bara i IE:

<script type="text/javascript">
<!--

document.onkeydown = function(){
     if(event.keyCode==8) return false;
};

//-->
</script>

Det finns någon specifik kod för Netscape 4 också, som involverar nyckelordet which, men det lämnar jag till någon annan ;)

:)

Medlem sedan jan. 20013 406 inlägg
#12

Det räcker med IE eftersom det är i ett administrationsgränssnitt.

Medlem sedan jan. 20013 406 inlägg
#13

Nu kommer en till fråga.

Om jag bara skulle vilja disabla så att sidan inte går bakåt. Man ska fortfarande kunna radera med knappen. Går det?

Medlem sedan maj 200010 687 inlägg
#14

Ungefär så här får man skrivaför att få det att funka även i NN.

<script type="text/javascript">
document.onkeydown = function(e)
{
	var keyCode = (e ? e.which : event.keyCode);
	return (keyCode != 8);
}
</script>
Medlem sedan jan. 20013 406 inlägg
#15

Sökte lite på nätet och hittade en kille som hade samma problem som jag har nu, men koden fungerar inte för mig.

Hi Everyone,

The following code traps the key stroke "backspace" in a web form so that
the user can't navigate back to the last page.
However I would like to engage the function only when the user is not in a
form element.
Does anyone know what code I should use?
Thanks
Bill Marriott

function mykeyhandler() {
if (window.event && window.event.keyCode == 8) { // try to cancel the
backspace
window.event.cancelBubble = true;
window.event.returnValue = false;
return false;
}
}

document.onkeydown = mykeyhandler;

Medlem sedan mars 20021 716 inlägg
#16

Va bra då, funkar allt nu?

Medlem sedan jan. 20013 406 inlägg
#17

nop

Medlem sedan dec. 20025 483 inlägg
#18

Testa detta:

<script type="text/javascript">
<!--

var f = false;

document.onkeydown = function(){
	if(event.keyCode==8 && !f) return false;
};

//-->
</script>

<form>
<input type="text" onfocus="f=true" onblur="f=false">
</form>

<form>
<input type="text" onfocus="f=true" onblur="f=false">
</form>

:)

Medlem sedan jan. 20013 406 inlägg
#19

Det funkade men det måste ju finnas något enklare sätt? Så att man slipper skriva onfocus="f=true" onblur="f=false" på alla fält.

På min sida finns det säkert 100 st sammanlagt i olika lager som visas.

Medlem sedan dec. 20025 483 inlägg
#20

Då skulle du kunna göra så här istället:

var f = false;

document.onkeydown = function(){
	if(event.keyCode==8 && !f) return false;
};

window.onload = function(){
	for(var i=0; i<document.forms.length; i++){
		for(var j=0; j<document.forms[i].elements.length; j++){
			document.forms[i].elements[j].onfocus = function(){
				f = true;
			}
			document.forms[i].elements[j].onblur = function(){
				f = false;
			}
		}
	}
};

:)

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)