Código inválido: o que significa href = "#"?

Quando você vê href = "#" no código ativo em uma página da Web, significa que a pessoa que escreveu a página cometeu um erro. Você nunca deve ver href = "#" no código-fonte real de uma página da Web porque o # por si só é realmente inválido e sem sentido.

Sempre que você anexa o JavaScript a um link, assim ou usando um equivalente discreto, você sempre precisa considerar aqueles que, por qualquer motivo, não têm o JavaScript ativado. o retorna falso no final do meu exemplo acima, impede que o href seja realmente usado se o Javascript é executado, mas o href ainda é o que será usado se, por qualquer motivo, o JavaScript não for executado. Portanto, o href precisa conter um valor válido válido com base no local em que você deseja que o link leve pessoas que não têm JavaScript disponível. Como a pessoa que escreveu o JavaScript para você não sabe para onde você quer que essas pessoas sejam levadas, elas inseriram um # no código, onde é necessário substituir o endereço real.

instagram viewer

Um # é válido em um atributo href, desde que não seja o único caractere no valor. Onde o # é seguido por caracteres adicionais, esses caracteres adicionais são o valor de um atributo de id em outro local do página da web atual e a página será exibida para exibir a tag que contém esse ID o mais próximo possível da parte superior do navegador janela de exibição. Por exemplo vai pular para

Um caractere # não é válido como o último caractere do href, pois implica que você deseja pular para um ID dentro da página, mas o valor do ID para o qual saltar não foi especificado. A ação que o navegador deve executar nessa instância é indefinida; no entanto, a maioria simplesmente retornará ao topo da página atual.

Então, o que você faz se o JavaScript que você deseja anexar é tal que não há alternativa para aqueles sem JavaScript? Bem, nesse caso, você não quer aqueles sem Javascript para ver o link, pois, se estiver visível para eles, alguns deles clicarão nele e você não terá nada que queira fazer por eles, o que será confuso. A solução, portanto, é garantir que o link seja visível apenas para aqueles com JavaScript ativado e a maneira de fazer isso é adicionar o link à página da Web usando JavaScript.

Somente onde é adicionado à página da web usando JavaScript, você pode ter certeza de que todos os que clicarem no link tem o JavaScript ativado e tat, portanto, o código doSomething () será executado e o href = "#" será ignorado. Então, e somente então, faz algum sentido deixar o # nesse ponto do código, pois o atributo href é necessário para que alguns navegadores aceitem o código como um link válido e onde você sabe que as únicas pessoas a ver o link terão Javascript ativado, você também sabe que ninguém acabará sendo levado ao local para o qual o href aponta e, portanto, poderá conter qualquer coisa, sem que isso importe e # é um valor tão bom quanto qualquer outro e certamente é melhor que href = "javascript:" (que é uma construção que nunca deve ser usada, independentemente de algo seguir os dois pontos ou não).