Certifique-se de que a opção Abrir todos os links externos em uma nova aba esteja marcada em /my/preferences/interface em Outras opções de interface (Parece ser a configuração padrão, de qualquer forma).
Encontre qualquer postagem com um link externo – exemplos aleatórios em meta e em try.
Clique no primeiro link externo que encontrar nessa postagem (preferencialmente o mesmo).
Ele abre em uma nova aba, bom.
PORÉM:
Certifique-se de que a opção Abrir todos os links externos em uma nova aba esteja marcada em /my/preferences/interface em Outras opções de interface (Parece ser a configuração padrão, de qualquer forma).
Abra a mesma postagem do teste anterior.
Selecione qualquer texto nesta postagem (1+ letra, 1+ palavra, qualquer seleção serve) – Você verá um botão flutuante Citar.
Clique no primeiro link externo que encontrar nessa postagem.
Agora o link externo abre na aba atual, em vez de uma nova aba.
Na verdade, você pode simplesmente tentar com esta postagem aqui:
Se você não tem as habilidades para enviar um PR (acho que não tenho), então apenas usar Control + clique para abrir em uma nova aba funcionará, não é difícil de automatizar e resolverá o problema em todos os sites, mesmo aqueles que não abrem links em novas abas.
Eu usaria Ctrl+clique, mas temos essa opção bacana, chamada Abrir todas os links externos em uma nova aba.
Mas o que essa opção realmente faz é Abrir links externos aleatórios em uma nova aba.
Levei meses, senão anos, para identificar um esquema de reprodução.
Pareceu realmente aleatório para mim.
Talvez remover essa opção, para um comportamento consistente?
Lembro de tentar configurar um ambiente de desenvolvimento Discourse para um simples PR de problema de CSS.
Mas, se bem me lembro, desisti porque meu PC era muito antigo e eu não conseguia instalar ou executar todos os requisitos.
Encontrei minha tentativa anterior falha de instalar um ambiente de desenvolvimento Discourse.
Meu PC Linux pessoal era muito antigo e meu laptop profissional com Windows não tinha hyper threading ativado.
Meu novo laptop profissional agora aparentemente tem hyper threading\*, então verei se consigo seguir as novas instruções, sem direitos de administrador.
wmic CPU Get NumberOfCores,NumberOfLogicalProcessors mostra mais núcleos lógicos do que núcleos físicos.
Espero que ajude, ainda não testei muito bem, mas parece funcionar.
Editar: user-select: text deve ser adicionado ao link porque não apenas o texto selecionado .cooked o afeta, mas todo o texto selecionado no site. Mudei o código.
Obrigado Sam, eu estava apenas testando mais detalhadamente antes de enviar e parece que isso infelizmente não é suficiente. Essa solução só funciona com o Chrome.
Aqui está o trecho de código que está causando o bug (de app/assets/javascripts/discourse/app/lib/click-track.js)
// Cancela o clique se acionado como parte da seleção.
const selection = window.getSelection();
if (selection.type === "Range" || selection.rangeCount > 0) {
if (selectedText() !== "") {
return true;
}
}
Remover este código resolve o problema e não parece quebrar os testes (tenho alguns testes falhando antes e depois da alteração por algum motivo, mas aparentemente nenhum novo).
Então, estou me perguntando se este código faz algo útil, porque uma coisa que ele certamente não faz é o que diz que faz, caso contrário, o relator do bug não experimentaria nenhum seguimento de link ao ‘selecionar + clicar’, mas essa não é a reclamação dele.
Alguém pode compartilhar o que este código deveria realizar?
Lembro vagamente que havia uma solução alternativa para um navegador específico, talvez tente no Safari/Firefox/Chrome com uma seleção para ver se algum deles a aciona?
esta correção pode ser testada facilmente, pois o arquivo pode ser colado como um todo no console.
@sam você sabe qual arquivo devemos colar no console após carregar uma página de tópico? @Aleksey_Bogdanov poderia fornecer esse arquivo e eu poderia colá-lo nos consoles do meu Vivaldi, Firefox e Kiwi no Android 9, e você poderia colá-lo no seu Safari no iOS e Mac OS.