webForumDet fria alternativet

Stoppa onclick vid <ctrl>+musklick

5 svar · 495 visningar · startad av drew

drewMedlem sedan mars 2007845 inlägg
#1

Jag har en del där jag använder

onclick="window.location.href='./en_sida'"

Dom fälten innehåller också en länk för dom som inte har JavaScript påslaget.

Om jag vill öppna länken i nytt fönster så använder jag mittenknappen (hjulet) och då blir den gamla sidan kvar i det första fönstret som avsett.

Men en del använder <ctrl>+vänsterknapp för att få länkar i nytt fönster. Då öppnas länken i nytt fönster. Men också i det gamla fönstret.

Finns det något sätt att stoppa onclick-event när ctrl är nere?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Så här kanske?

<script type="text/javascript">
document.onmousedown = function(e){
	var evt=(navigator.appName=="Netscape")?e:event;
	shiftPressed=evt.shiftKey; altPressed=evt.altKey; ctrlPressed=evt.ctrlKey;
}
</script>
<style type="text/css">
.link { cursor:hand; text-decoration:underline; color: blue; }
</style>

<span onclick="window.open('http://www.google.com',(ctrlPressed)?'_blank':'_self');" class="link">Google</span>
drewMedlem sedan mars 2007845 inlägg
#3

Tack, ska testa.

drewMedlem sedan mars 2007845 inlägg
#4

Funkar typ perfekt. Förutom att om jag håller ner ctrl och klickar på länken så öppnas två fönster. Men den gamla blir kvar som den ska.

Jag kan inte ta bort <a>

Kanske ett onclick="event.cancelBubble=true" i <a> skulle göra susen.

Edit: Näpps, då händer inget med ctrl nere.

JojoxxMedlem sedan juni 20004 308 inlägg
#5

Aha, du använder <a>. Använd return false; sist i onclick-eventet så används inte den ordinarie länken.

drewMedlem sedan mars 2007845 inlägg
#6

Visstja. Får nog skriva upp return false; på skärmen. Verkar alltid glömma den.

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)