webForumDet fria alternativet

Disable bakstegsknappen

27 svar · 705 visningar · startad av Addeladde

AddeladdeMedlem sedan jan. 20012 997 inlägg
#1

Hej

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

/Andreas

Jesper TMedlem sedan nov. 20017 058 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.

AddeladdeMedlem sedan jan. 20012 997 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.

Jesper TMedlem sedan nov. 20017 058 inlägg
#4

med en replace kanske

AddeladdeMedlem sedan jan. 20012 997 inlägg
#5

Hur gör man det då?

Jesper TMedlem sedan nov. 20017 058 inlägg
AddeladdeMedlem sedan jan. 20012 997 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.

Jesper TMedlem sedan nov. 20017 058 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,'');">
Jesper TMedlem sedan nov. 20017 058 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.

AddeladdeMedlem sedan jan. 20012 997 inlägg
#10

Precis

Peter SMedlem sedan dec. 20025 484 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 ;)

:)

AddeladdeMedlem sedan jan. 20012 997 inlägg
#12

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

AddeladdeMedlem sedan jan. 20012 997 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?

Erik JuhlinMedlem sedan maj 20007 625 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>
AddeladdeMedlem sedan jan. 20012 997 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;

[AMD]ZmasterMedlem sedan mars 20021 546 inlägg
#16

Va bra då, funkar allt nu?

AddeladdeMedlem sedan jan. 20012 997 inlägg
#17

nop

Peter SMedlem sedan dec. 20025 484 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>

:)

AddeladdeMedlem sedan jan. 20012 997 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.

Peter SMedlem sedan dec. 20025 484 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;
			}
		}
	}
};

:)

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb