"Alle externen Links in einem neuen Tab öffnen" funktioniert nicht, wenn Sie Text auswählen

  1. Stellen Sie sicher, dass die Option Alle externen Links in einem neuen Tab öffnen unter /my/preferences/interface Andere Interface-Optionen aktiviert ist (es scheint sowieso die Standardeinstellung zu sein).
  2. Suchen Sie einen beliebigen Beitrag mit einem externen Link – zufällige Beispiele in meta und in try.
  3. Klicken Sie auf den ersten externen Link, den Sie in diesem Beitrag finden (vorzugsweise denselben).

Er öffnet sich in einem neuen Tab, gut. :+1:

ABER:

  1. Stellen Sie sicher, dass die Option Alle externen Links in einem neuen Tab öffnen unter /my/preferences/interface Andere Interface-Optionen aktiviert ist (es scheint sowieso die Standardeinstellung zu sein).
  2. Öffnen Sie denselben Beitrag wie im vorherigen Test.
  3. Wählen Sie einen beliebigen Text in diesem Beitrag aus (1+ Buchstabe, 1+ Wort, jede Auswahl ist in Ordnung) – Sie sollten eine schwebende Zitat-Schaltfläche sehen.
  4. Klicken Sie auf den ersten externen Link, den Sie in diesem Beitrag finden.

:no_entry: :see_no_evil: :warning: Jetzt öffnet sich der externe Link im aktuellen Tab, anstatt in einem neuen Tab. :warning: :see_no_evil: :no_entry:


:information_source: Tatsächlich können Sie es einfach mit diesem Beitrag hier versuchen:

  1. Klicken Sie auf DIESEN EXTERNE LINK – OK gut :+1: neuer Tab
  2. Wählen Sie DIESEN TEXT aus
  3. Klicken Sie erneut auf den externen Link aus Schritt 1 – NG :no_entry: aktueller Tab
4 „Gefällt mir“

Ich kann bestätigen. Ich bin mir nicht ganz sicher, ob es sich lohnt, das zu beheben, da es sich um einen Grenzfall zu handeln scheint, bei dem der Benutzer Ärger sucht.

1 „Gefällt mir“

Weil Sie denken, es könnte schwierig sein, es zu beheben?

Ich klicke oft. Ich wähle oft Text aus.
Deshalb nervt es mich sehr oft.

Ich habe diesen Fehler schon vor langer Zeit erwähnt, aber ich habe ihn nicht so gut erklärt wie dieses Mal. :wink:

Das ist ärgerlich.

Wenn Sie nicht die Fähigkeiten haben, einen PR einzureichen (ich glaube nicht, dass ich das habe), dann funktioniert die Verwendung von Strg-Klick, um in einem neuen Tab zu öffnen, ist nicht schwer zu automatisieren und löst das Problem auf jeder Website, auch auf denen, die Links nicht in neuen Tabs öffnen.

1 „Gefällt mir“

Ich würde Strg+Klick verwenden, aber wir haben diese nette Option, namens Alle externen Links in einem neuen Tab öffnen.

Aber was diese Option tatsächlich tut, ist Zufällige externe Links in einem neuen Tab öffnen.

Es hat Monate, wenn nicht Jahre gedauert, bis ich ein Reproduktionsschema gefunden habe.
Es kam mir wirklich zufällig vor.

Vielleicht diese Option entfernen, für ein konsistentes Verhalten?

Ich erinnere mich, dass ich versucht habe, eine Discourse-Entwicklungsumgebung für einen einfachen CSS-Problem-PR einzurichten.
Aber, wenn ich mich richtig erinnere, habe ich aufgegeben, weil mein PC zu alt war und ich nicht alle Anforderungen installieren oder ausführen konnte.

1 „Gefällt mir“

Ich habe meinen früheren gescheiterten Versuch, eine Discourse-Entwicklungsumgebung zu installieren wiedergefunden.
Mein persönlicher Linux-PC war zu alt und mein professioneller Windows-Laptop hatte kein Hyper-Threading aktiviert.

Mein neuer professioneller Laptop hat jetzt anscheinend Hyper-Threading\*, daher werde ich sehen, ob ich den neuen Anweisungen ohne Administratorrechte folgen kann.

\* wmic CPU Get NumberOfCores,NumberOfLogicalProcessors zeigt mehr logische Kerne als physische Kerne an.

Hallo,

Ich glaube, das kann behoben werden mit CSS.

.cooked a {
  @include user-select(text);
}

Ich hoffe, das hilft. Ich habe es noch nicht wirklich getestet, aber es scheint gut zu funktionieren. :slightly_smiling_face:

Bearbeiten: user-select: text sollte zum Link hinzugefügt werden, da nicht nur der .cooked ausgewählte Text ihn beeinflusst, sondern jeder ausgewählte Text auf der Website. Ich habe den Code geändert.

6 „Gefällt mir“

Das kommt mir wie Magie vor. Ich würde gerne wissen, wie das funktioniert, kannst du mir diesen Trick erklären? :hugs:

2 „Gefällt mir“

Tolle Spurensuche, Don, möchtest du einen PR einreichen?

6 „Gefällt mir“

Danke Sam, ich habe es nur genauer getestet, bevor ich es eingereicht habe, und es scheint, dass dies leider nicht ausreicht. Diese Lösung funktioniert nur mit Chrome.

5 „Gefällt mir“

Hier ist der Codeausschnitt, der den Fehler verursacht (aus app/assets/javascripts/discourse/app/lib/click-track.js)

    // Klick abbrechen, wenn er als Teil einer Auswahl ausgelöst wird.
    const selection = window.getSelection();
    if (selection.type === "Range" || selection.rangeCount > 0) {
      if (selectedText() !== "") {
        return true;
      }
    }

Das Entfernen dieses Codes löst das Problem und scheint keine Tests zu beeinträchtigen (einige Tests schlagen aus irgendeinem Grund vor und nach der Änderung fehl, aber anscheinend keine neuen).
Daher frage ich mich, ob dieser Code etwas Nützliches bewirkt, denn eines tut er sicher nicht: Er tut nicht das, was er vorgibt zu tun, sonst würde der Fehlerberichter beim „Auswählen + Klicken“ überhaupt kein Link-Folgen erleben, aber das ist nicht seine Beschwerde.
Kann mir jemand sagen, was dieser Code bewirken soll?

1 „Gefällt mir“

Vielleicht ist es dazu gedacht, das Öffnen von Links in neuen Tabs zu verhindern, wenn man nur Text zum Zitieren oder Kopieren auswählt?

Wenn der von Ihnen gefundene Code deaktiviert ist und die Option „Alle externen Links in einem neuen Tab öffnen“ aktiviert ist,

Könnten Sie versuchen, Text auszuwählen (Maus gedrückt halten, ziehen, Maus loslassen), der Links enthält, um zu sehen, ob keiner davon geöffnet wird?

Versuchen Sie es mit einer Auswahl, die Links umschließt, und versuchen Sie es vielleicht auch mit einer Auswahl, die mitten in einem Link endet.

Die Auswahl sollte immer nur auswählen, keine Links öffnen.

Ja, solche Auswahlen funktionieren wie erwartet: ohne Links zu folgen oder sie in neuen Tabs zu öffnen.

1 „Gefällt mir“

Ich erinnere mich vage daran, dass es eine Problemumgehung für einen bestimmten Browser gab. Versuchen Sie es vielleicht in Safari/Firefox/Chrome mit einer Auswahl, um zu sehen, ob eine davon es auslöst?

1 „Gefällt mir“

Funktioniert unter Firefox, Chrome. Wie kann ich Safari unter Ubuntu ausprobieren?

1 „Gefällt mir“

Ist dein Entwicklungsserver in deinem WLAN erreichbar, damit du auch mit deinem Smartphone testen könntest?

Vielleicht lösen die Touchscreen-Finger-Drag-Events das Öffnen von Links aus.

Du könntest diesen Smartphone-Browser (Firefox, Chromium-basiert oder Safari) zu deiner Liste der getesteten Browser hinzufügen. :smiling_face_with_sunglasses:

Und übrigens, vielen Dank für deine Arbeit an diesem Fehler!!

Ich habe diesen Grund für diesen Abbruchcode gefunden, anscheinend:

Verhindern Sie einen Klick, wenn der Benutzer Inhalte in einem Thema auswählt und die Maus über einem Link loslässt.

https://meta.discourse.org/t/selecting-a-link-results-in-it-being-opened/14846

[gelöschtes Thema]

Interessanter Kommentar:

Ich habe nur Zugriff auf die Windows-Plattform zum Testen.

Dieser Fix kann leicht getestet werden, da die Datei als Ganzes in die Konsole eingefügt werden kann.

@sam, weißt du, welche Datei wir nach dem Laden einer Thema-Seite in die Konsole einfügen sollen?
@Aleksey_Bogdanov, könntest du mir diese Datei geben und ich könnte sie in meine Windows Vivaldi, Firefox, Android 9 Kiwi Browser-Konsolen einfügen, und du könntest sie in dein iOS, Mac OS Safari einfügen.

Ich glaube nicht, dass das mehr so funktioniert.

1 „Gefällt mir“

In Chrome und Firefox unter Android wurde kein Problem festgestellt, obwohl ich in Firefox nur eingeschränkt auswählen kann.

1 „Gefällt mir“

Das war doch auch vor deiner Änderung schon so, oder?