Assicurati che l’opzione Apri tutti i link esterni in una nuova scheda sia selezionata in /my/preferences/interfaceAltre opzioni dell’interfaccia (sembra comunque essere l’impostazione predefinita)
Trova un post con un link esterno – esempi casuali in meta e in try
Fai clic sul primo link esterno che trovi in quel post (preferibilmente lo stesso)
Si apre in una nuova scheda, bene.
MA:
Assicurati che l’opzione Apri tutti i link esterni in una nuova scheda sia selezionata in /my/preferences/interfaceAltre opzioni dell’interfaccia (sembra comunque essere l’impostazione predefinita)
Apri lo stesso post del test precedente
Seleziona qualsiasi testo in questo post (1+ lettera, 1+ parola, qualsiasi selezione andrà bene) – Dovresti vedere un pulsante mobile Cita
Fai clic sul primo link esterno che trovi in quel post
Ora il link esterno si apre nella scheda corrente, invece che in una nuova scheda.
In realtà puoi semplicemente provare con questo post qui:
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.
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.
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.
Spero aiuti, non l’ho ancora testato bene ma sembra funzionare.
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.
Grazie Sam, lo stavo solo testando più attentamente prima di inviarlo e purtroppo sembra che non sia sufficiente. Questa soluzione funziona solo con Chrome.
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?
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?
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.