Warum werden bei gedrückter STRG-Taste einige Links in einem neuen Tab nicht geöffnet?


18

Manchmal klicke ich beim Surfen bei gedrückter Strg-Taste auf einen Link, um ihn in einem neuen Tab zu öffnen. Anstatt jedoch in einem neuen Tab zu öffnen, wird darauf geklickt und im aktuellen Tab gesucht, als hätte ich normal darauf geklickt, ohne die Strg-Taste gedrückt zu halten. Ich bin mir sicher, dass ich die Strg-Taste ganz gedrückt halte und keine Fehler an Tastatur oder Maus vorliegen.

Gelegentlich wird eine neue Registerkarte mit dem Link geöffnet, aber die aktuelle Registerkarte durchsucht gleichzeitig den Link.


3
Vielleicht handelt es sich nicht um tatsächliche Links, in dem Sinne, dass der "Link" eine onclickOperation verwendet, die mit der Tastenkombination Strg + Klick in Konflikt geraten könnte. Können Sie ein konkretes Beispiel nennen? meta.stackoverflow.com/questions/276138/…
imtheman

@imtheman Toller Punkt, es scheint jedoch nicht der Fall zu sein, zumindest in den Beispielen, die ich gesehen habe. Ich weiß das, weil ich immer vorher mit der Maus über den Link fahre, um zu überprüfen, ob in der Statusleiste eine URL angezeigt wird. Ein Beispiel finden Sie hier: nationaljournal.com/white-house/… In der linken Spalte / Leiste scheinen die Links zu anderen Storys ihre eigenen URLs zu sein. Dies wird überprüft, indem Sie sogar zu ihrer Position in der Quelle springen, jedoch bei gedrückter Strg-Taste nicht klicken funktioniert nicht, sondern tut so, als würde die Strg-Taste nicht gedrückt.
Coldblackice

Wenn Sie sich den Quellcode für diese Site ansehen, sehen Sie dies für einen der Links:<a class="primary" href="/superuser//congress" onclick="var x=&quot;.tl(&quot;;s_objectID=&quot;http://www.nationaljournal.com/congress_1&quot;;return this.s_oc?this.s_oc(e):true">Congress</a>
imtheman

1
Es hat zwar ein hrefAttribut, wird jedoch vom Ereignis onclick überschrieben.
Imtheman

1
Ich habe ein Firefox-Addon geschrieben, um dieses Problem zu beheben. github.com/danielnixon/link-fixer
danielnixon

Antworten:


8

JavaScript hinter den Kulissen

Dies geschieht, wenn Entwickler solcher Webseiten Mausklicks mit JavaScript abfangen und asynchrone Netzwerkanforderungen im Interceptor ausführen, um möglicherweise Ihre Klicks zu verfolgen. Wenn der asynchrone Netzwerkaufruf zurückkehrt, führt der JS eine programmgesteuerte Umleitung durch, indem er Folgendes verwendet:window.location.href = url;

Diese programmgesteuerte Umleitung lädt die Seite immer auf der gleichen Registerkarte, auch wenn Sie gedrückt halten Ctrl( Cmdauf einem Mac).

Verwenden Sie MiddleMouse zum Überschreiben

Wenn Sie auf die mittlere Maustaste klicken oder im Kontextmenü die Option "In neuem Tab öffnen" auswählen , wird der abfangende JavaScript-Code vollständig umgangen und ein Link wird geöffnet, als gäbe es überhaupt keinen JavaScript-Code.


Das ist nicht ganz richtig. Während einige Code-Designs einen alternativen Auslöser zulassen, der das Öffnen der Seite in einem neuen Tab erzwingt, verhindern andere Code-Designs dies. Dies ist häufiger bei Websites mit dynamischem Inhalt der Fall, die keine typischen "Seiten" aufweisen und stattdessen die Seiten beim Klicken auf Schaltflächen generieren. In diesem Fall gibt es keine echten "Links" auf der Seite, sondern Schaltflächen, die das Verhalten einer Anwendung ähnlicher auslösen.
music2myear

6

Ich habe ein (langweiliges) Firefox-Add-On namens Link-Fixer geschrieben , um dieses Problem zu beheben. Sie können von addons.mozilla.org installieren . Es erfordert Firefox 48.0 oder höher.

Ich zitiere mich:

Das Standardverhalten von Strg + Klicken, Umschalt + Klicken und Cmd + Klicken beim Klicken auf Links besteht darin, den Link in einem neuen Tab oder einem neuen Fenster zu öffnen. Dieses Verhalten wird manchmal von unachtsamen Entwicklern gebrochen. Dieses Add-On stellt das Standardverhalten wieder her und stellt sicher, dass die Änderungsschlüssel immer beachtet werden.

Einmal installiert, brauchen Sie nichts weiter zu tun. Sie können bei gedrückter Strg-Taste auf einen beliebigen Link klicken, um ihn in einem neuen Tab zu öffnen. Es wird auch die Variation des Problems lösen, das Sie in Ihrem zweiten Absatz beschreiben.


1
Hallo Daniel, während es großartig ist, dass Sie etwas geschrieben haben, um dies zu beheben, können Sie lesen, wie Sie Software in einer Antwort empfehlen , insbesondere die fett gedruckten Teile, und Ihre Antwort bitte aktualisieren? Danke :)
Bertieb

3

Nehmen wir diesen Link als Beispiel:

<a href="test.php" onclick="someFunction(this); return false;">Test</a>

In hrefdiesem Fall erstellt das Attribut einen Pseudolink zur besseren Lesbarkeit (der Link funktioniert auch, wenn JavaScript deaktiviert ist). Der Grund dafür ist, dass das onclickAttribut immer zuerst ausgeführt wird. Große Websites wie Google verfolgen auf diese Weise Klicks und versuchen, einen Nutzer daran zu hindern, Malware-Websites zu besuchen. Aus diesem Grund Ctrlfunktioniert + Click aus irgendeinem Grund nicht. Wenn Sie jedoch die mittlere Maustaste verwenden, funktioniert dies fast immer.


1
Versucht, eine mittlere Maus auf dem Mac zu finden .
Eduard

Ich habe ein Firefox-Addon geschrieben, um dieses Problem zu beheben. github.com/danielnixon/link-fixer
danielnixon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.