"Apri tutti i link esterni in una nuova scheda" non funziona quando selezioni del testo

  1. Assicurati che l’opzione Apri tutti i link esterni in una nuova scheda sia selezionata in /my/preferences/interface Altre opzioni dell’interfaccia (sembra comunque essere l’impostazione predefinita)
  2. Trova un post con un link esterno – esempi casuali in meta e in try
  3. Fai clic sul primo link esterno che trovi in quel post (preferibilmente lo stesso)

Si apre in una nuova scheda, bene. :+1:

MA:

  1. Assicurati che l’opzione Apri tutti i link esterni in una nuova scheda sia selezionata in /my/preferences/interface Altre opzioni dell’interfaccia (sembra comunque essere l’impostazione predefinita)
  2. Apri lo stesso post del test precedente
  3. Seleziona qualsiasi testo in questo post (1+ lettera, 1+ parola, qualsiasi selezione andrà bene) – Dovresti vedere un pulsante mobile Cita
  4. Fai clic sul primo link esterno che trovi in quel post

:no_entry: :see_no_evil: :warning: Ora il link esterno si apre nella scheda corrente, invece che in una nuova scheda. :warning: :see_no_evil: :no_entry:


:information_source: In realtà puoi semplicemente provare con questo post qui:

  1. Fai clic su QUESTO LINK ESTERNO – OK bene :+1: nuova scheda
  2. Seleziona QUESTO TESTO
  3. Fai clic di nuovo sul link esterno del passaggio 1 – NG :no_entry: scheda corrente
4 Mi Piace

Posso confermare. Non sono del tutto sicuro che valga la pena correggerlo, poiché sembra un caso limite, in cui l’utente sta cercando guai.

1 Mi Piace

Perché pensi che possa essere complicato da correggere?

Clicco spesso. Seleziono spesso del testo.
Quindi mi infastidisce molto spesso.

Ho segnalato questo bug molto tempo fa, ma non l’avevo spiegato così bene come questa volta. :wink:

È fastidioso.

Se non hai le competenze per inviare una PR (non credo di averle) allora basta usare control-click per aprire in una nuova scheda, non è difficile da automatizzare e risolverà il problema su ogni sito, anche quelli che non aprono i link in nuove schede.

1 Mi Piace

Userei Ctrl+click, ma abbiamo questa bella opzione, chiamata Apri tutti i link esterni in una nuova scheda.

Ma ciò che questa opzione fa in realtà è Apri link esterni casuali in una nuova scheda.

Mi ci sono voluti mesi, se non anni, per individuare uno schema di riproduzione.
Mi sembrava davvero casuale.

Forse rimuovere questa opzione, per un comportamento coerente?

Ricordo di aver provato a configurare un ambiente di sviluppo Discourse per una semplice PR di problemi CSS.
Ma, se ricordo bene, ho rinunciato perché il mio PC era troppo vecchio e non potevo installare o eseguire tutti i requisiti.

1 Mi Piace

Ho ritrovato il mio precedente tentativo fallito di installare un ambiente di sviluppo Discourse.
Il mio PC Linux personale era troppo vecchio e il mio laptop Windows professionale non aveva l’hyper threading attivato.

Il mio nuovo laptop professionale ora ha apparentemente l’hyper threading\* quindi vedrò se riesco a seguire le nuove istruzioni, senza diritti di amministratore.

\* wmic CPU Get NumberOfCores,NumberOfLogicalProcessors mostra più core logici che core fisici.

Ciao,

Penso che possa essere risolvibile con CSS.

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

Spero aiuti, non l’ho ancora testato bene ma sembra funzionare. :slightly_smiling_face:

Modifica: user-select: text dovrebbe essere aggiunto al link perché non solo il testo selezionato .cooked lo influenza, ma ogni testo selezionato sul sito. Ho cambiato il codice.

6 Mi Piace

Per me sembra magia. Vorrei sapere come funziona, puoi spiegarmi questo trucco? :abbracci:

2 Mi Piace

Ottimo lavoro investigativo, Don, vuoi inviare una PR?

6 Mi Piace

Grazie Sam, lo stavo solo testando più attentamente prima di inviarlo e purtroppo sembra che non sia sufficiente. Questa soluzione funziona solo con Chrome.

5 Mi Piace

Ecco il pezzo di codice che causa il bug (da app/assets/javascripts/discourse/app/lib/click-track.js)

    // Annulla il clic se attivato come parte della selezione.
    const selection = window.getSelection();
    if (selection.type === "Range" || selection.rangeCount > 0) {
      if (selectedText() !== "") {
        return true;
      }
    }

La rimozione di questo codice risolve il problema e non sembra rompere i test (ho alcuni test che falliscono prima e dopo la modifica per qualche motivo, ma apparentemente nessuno nuovo).
Quindi mi chiedo se questo codice faccia qualcosa di utile, perché una cosa che di sicuro non fa è quello che dice di fare, altrimenti il segnalatore del bug non avrebbe alcun seguito di link dopo ‘seleziona + clic’, ma non è questo il suo reclamo.
Qualcuno può condividere cosa dovrebbe fare questo codice?

1 Mi Piace

Forse è fatto per impedire l’apertura dei link in nuove schede quando si seleziona solo del testo da citare o copiare?

Quando il codice che hai trovato è disattivato e hai l’opzione “Apri tutti i link esterni in una nuova scheda” selezionata,

Potresti provare a selezionare (tieni premuto il mouse, trascina, rilascia il mouse) del testo che include link per vedere se non ne apre nessuno?

Prova con una selezione che circonda i link e prova anche con una selezione che termina nel mezzo di un link, forse.

La selezione dovrebbe sempre e solo selezionare, non aprire i link.

Sì, tali selezioni funzionano come previsto: senza seguire i link o aprirli in nuove schede.

1 Mi Piace

Ricordo vagamente che c’era una soluzione per un browser specifico, forse prova in Safari/Firefox/Chrome con una selezione per vedere se qualcuna la innesca?

1 Mi Piace

Funziona su Firefox, Chrome. Come posso provare Safari su Ubuntu?

1 Mi Piace

Il tuo server di sviluppo è accessibile sulla tua rete Wi-Fi in modo da poter testare anche con il tuo smartphone?

Forse gli eventi di trascinamento del dito sul touchscreen attivano l’apertura dei link.

Potresti aggiungere questo browser per smartphone (Firefox, basato su Chromium o Safari) al tuo elenco di browser testati. :smiling_face_with_sunglasses:

E, a proposito, grazie mille per il tuo lavoro su questo bug!!

Ho trovato questo motivo per questo codice di annullamento, apparentemente:

Impedisci un clic se l’utente seleziona contenuto in un argomento e rilascia il mouse su un link.

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

[argomento eliminato]

Commento interessante:

Ho solo accesso alla piattaforma Windows per i test.

questa correzione può essere testata facilmente poiché il file può essere incollato interamente nella console.

@sam sai quale file dovremmo incollare nella console dopo aver caricato una pagina di argomento?
@Aleksey_Bogdanov potresti fornire quel file e potrei incollarlo nelle console dei miei browser Windows Vivaldi, Firefox, Android 9 Kiwi, e tu potresti incollarlo nei tuoi browser iOS, Mac OS Safari.

Non credo che funzioni più così.

1 Mi Piace

Nessun problema rilevato in Chrome e Firefox su Android, anche se ho difficoltà a selezionare in modo altrettanto flessibile su Firefox.

1 Mi Piace

Era lo stesso anche prima della tua modifica, giusto?