Stoppa onclick vid <ctrl>+musklick

JavaScript

5 svar · 501 visningar · startad av drew

Medlem sedan mars 2007845 inlägg
Trådstart#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?

Medlem 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>
Medlem sedan mars 2007845 inlägg
#3

Tack, ska testa.

Medlem 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.

Medlem 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.

Medlem sedan mars 2007845 inlägg
#6

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

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)