2016-04-02 18 views
0

Ich weiß, dass dies das Standardverhalten des Browsers ist (in einem neuen Tab öffnen), aber gibt es irgendwelche Tricks, um sie zu überwinden? Die anderen Event-Handler nicht verwenden - wie onmousedown/onmouseup für <a>? Öffnen versucht mit: window.open(url);Wie öffne ich den Link per Strg + Klick in das neue Fenster in (Chrome, Mozilla)?

Es ist notwendig, es auf die Anforderungsspezifikation zu machen.

+0

Warum möchten Sie das erwartete Browserverhalten außer Kraft setzen? – moopet

+0

Dies muss bei der technischen Aufgabe erfolgen. Und es macht mich seit über zwei Wochen verrückt, ja. –

+0

Leider scheint die Antwort zu sein, dass Chrome JavaScript-Klickhandlern nicht erlaubt, neue Fenster zu öffnen. Siehe [diese Frage] (http://stackoverflow.com/q/2572333/1016716). Gops ABs Antwort, wenn Sie die Fehler korrigieren, funktioniert immer noch nur in Mozilla; ([Geige] (http://jsfiddle.net/MrLister/aeavd4L5/2/)). –

Antwort

0
if (e.ctrlKey){ 
     window.open(url,'_blank') 
    } 

Es öffnet sich die URL in der neuen Registerkarte. Überprüfen Sie, ob ctrl Schlüssel in dem Click-Ereignis

$(".yourLink").bind('click', function(e){ 
     e.prevenDefault(); 
     if (e.ctrlKey){ 
     window.open(url,'_blank'); 
    } 
    }); 

EDIT

Wenn Sie in einem neuen Fenster geöffnet werden soll, geben Sie Breite und Höhe wie

folgt
window.open(url,'_blank', "height=255,width=255"); 
+0

@KseniyaYudina Überprüfen Sie meine Bearbeitung –

+0

window.open (URL, _blank "," width = 700, Höhe = 620, ") - nur in IE in einem neuen Fenster öffnen. :( –

+0

Meine Version von Chrome ist 44.0.2403.157 m. Ich habe überprüft - es funktioniert nicht –

0

Eigentlich ist es im Zusammenhang mit Die STRG-Taste scheint in Chrome ein Bug zu sein und nimmt es als Standardverhalten auf, selbst die e.preventDefault() wurde aufgerufen. Um den Browser auszutricksen, müssen Sie den Listener-Stack mit einer setTimeout-Funktion verlassen.

$(".yourLink").bind('click', function(e){ 
    if (e.ctrlKey){ 
      var openWindow= function(){ 
       window.open(url,'name','width=' + screen.width + ',height=' + screen.height + ',location=yes,scrollbars=yes,status=yes;'); 
      } 
      setTimeout(openWindow, 500); 
    } 
});