"Abrir todos os links externos em uma nova aba" não funciona quando você seleciona algum texto

  1. 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).
  2. Encontre qualquer postagem com um link externo – exemplos aleatórios em meta e em try.
  3. Clique no primeiro link externo que encontrar nessa postagem (preferencialmente o mesmo).

Ele abre em uma nova aba, bom. :+1:

PORÉM:

  1. 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).
  2. Abra a mesma postagem do teste anterior.
  3. Selecione qualquer texto nesta postagem (1+ letra, 1+ palavra, qualquer seleção serve) – Você verá um botão flutuante Citar.
  4. Clique no primeiro link externo que encontrar nessa postagem.

:no_entry: :see_no_evil: :warning: Agora o link externo abre na aba atual, em vez de uma nova aba. :warning: :see_no_evil: :no_entry:


:information_source: Na verdade, você pode simplesmente tentar com esta postagem aqui:

  1. Clique em ESTE LINK EXTERNO – OK bom :+1: nova aba.
  2. Selecione ESTE TEXTO.
  3. Clique no link externo do passo 1, novamente – NG :no_entry: aba atual.
4 curtidas

Posso confirmar. Não tenho certeza se vale a pena corrigir, pois parece um caso extremo, onde o usuário está procurando por problemas.

1 curtida

Porque você acha que pode ser complicado consertar?

Eu clico com frequência. Eu seleciono texto com frequência.
Então isso me incomoda muito.

Eu mencionei esse bug há muito tempo, mas não o expliquei tão bem quanto desta vez. :wink:

Isso é chato.

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.

1 curtida

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.

1 curtida

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.

Olá,

Acho que pode ser corrigível com CSS.

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

Espero que ajude, ainda não testei muito bem, mas parece funcionar. :slightly_smiling_face:

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.

6 curtidas

Isso parece mágica para mim. Gostaria de saber como funciona, você pode explicar esse truque? :hugs:

2 curtidas

Ótima investigação, Don, você gostaria de enviar um PR?

6 curtidas

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.

5 curtidas

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?

1 curtida

Talvez seja feito para evitar a abertura de links em novas abas quando apenas selecionamos algum texto para citar ou copiar?

Quando o código que você encontrou estiver desativado e a opção “Abrir todos os links externos em uma nova aba” estiver marcada,

Você poderia tentar selecionar (clicar e arrastar com o mouse) algum texto que inclua links para ver se nenhum deles é aberto?

Tente com uma seleção que envolva links e também tente com uma seleção que termine no meio de um link, talvez.

A seleção deve sempre apenas selecionar, não abrir links.

Sim, tais seleções funcionam como esperado: sem seguir links ou abri-los em novas abas.

1 curtida

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?

1 curtida

Funciona no Firefox, Chrome. Como devo tentar o Safari no Ubuntu?

1 curtida

Seu servidor de desenvolvimento está acessível em sua rede Wi-Fi para que você também possa testar com seu smartphone?

Talvez os eventos de arrastar o dedo na tela sensível ao toque estejam acionando a abertura de links.

Você poderia adicionar este navegador de smartphone (Firefox, baseado em Chromium ou Safari) à sua lista de navegadores testados. :smiling_face_with_sunglasses:

E, a propósito, muito obrigado pelo seu trabalho neste bug!!

Encontrei este motivo para este código de cancelamento, aparentemente:

Impede um clique se o usuário selecionar conteúdo em um tópico e soltar o mouse sobre um link.

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

[tópico excluído]

Comentário interessante:

Só tenho acesso à plataforma Windows para testes.

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.

Não acho que funcione mais assim.

1 curtida

Nenhum problema detectado no Chrome e no Firefox no Android, embora eu tenha dificuldade em selecionar no Firefox com tanta liberdade.

1 curtida

Foi o mesmo antes da sua alteração, certo?