2016-08-05 3 views
0

Es gibt div, wo ich onclick Funktion verwenden, um auf einer anderen Seite umzuleiten.Javascript und Ctrl Schlüsselkonflikt

Aber wenn ich Strg-Taste und Maus verwende, wird der Link in der nächsten Registerkarte sowie in der gleichen Registerkarte geöffnet. Im Idealfall sollte es nur in einem neuen Tab geöffnet werden.

-Code lautet wie folgt:

<div onclick="window.location='some page url'"> 
+0

Warum machst du das mit onclck? Das ist das Standardverhalten des Browsers. –

+0

@DaveNewton Ja, Sie haben Recht. Aber wenn ich eine einfache 'window.location =" irgendeine URL "verwende, passiert dasselbe. –

Antwort

1

dies nur tun:

<a href="some page url"> 
<div></div> 
</a> 

Also, wenn Sie es klicken in der gleichen Registerkarte öffnen und wenn Sie die Strg-Taste drücken, wird es in einem neuen Tab geöffnet.

EDIT: So, jetzt versuchen, diese:

<div onclick="doRedirect()"></div> 

<script> 
    $(document).keydown(function(event){ 
     if(event.which=="17") 
      cntrlIsPressed = true; 
    }); 

    $(document).keyup(function(){ 
     cntrlIsPressed = false; 
    }); 

    var cntrlIsPressed = false; 


    function doRedirect() 
    { 
     if(cntrlIsPressed) 
     { 
      window.open('some url','_blank'); 
     } 
     else{ 
      window.location('some url'); 
     } 

    } 
</script> 

Sie können auch die URL in Parameter angeben.

+0

Ich weiß das. Aber ich kann das nicht tun. Es ist nicht meine Anforderung. –

+0

Was ist Ihre Anforderung? –

+0

Ich möchte umleiten, wenn Sie nur auf "div" klicken. Ich kann '' nicht verwenden. –

0
+0

Vielen Dank für Ihre Antwort, aber es verhindert die Standardfunktion des Klicks. Wenn Sie mit der Maus darauf klicken, sollte es auf der gleichen Seite umgeleitet werden. Und wenn Sie die Maus mit Strg-Taste drücken, sollte es nur in der neuen Registerkarte öffnen. –