Eu tenho um aplicativo Web com a marca de acordo com o usuário conectado no momento. Gostaria de mudar o ícone da página para ser o logotipo da marca própria, mas não consigo encontrar nenhum código ou exemplo de como para fazer isso. Alguém já fez isso com sucesso antes?
Estou imaginando ter uma dúzia de ícones em uma pasta, e a referência à qual o arquivo favicon.ico usar é gerada dinamicamente, juntamente com a página HTML. Pensamentos?
javascript
html
dom
favicon
SqlRyan
fonte
fonte
Respostas:
Por que não?
O Firefox deve ser legal com isso.
editado para substituir adequadamente os ícones existentes
fonte
shortcut
dorel
atributoshortcut
é uma relação de link proprietária do IE inválida!Aqui está um código que funciona no Firefox, Opera e Chrome (diferente de todas as outras respostas postadas aqui). Aqui está uma demonstração diferente do código que também funciona no IE11 . O exemplo a seguir pode não funcionar no Safari ou no Internet Explorer.
Você o usaria da seguinte maneira:
Afaste-se ou veja uma demonstração .
fonte
document.head || document.head = document.getElementsByTagName('head')[0];
Uncaught ReferenceError: Invalid left-hand side in assignment
Se você possui o seguinte snippet HTML:
Você pode alterar o favicon usando Javascript, alterando o elemento HREF neste link, por exemplo (supondo que você esteja usando JQuery):
Você também pode criar um elemento Canvas e definir o HREF como um ToDataURL () da tela, assim como o Favicon Defender .
fonte
favicon.png
. Isso pode precisar ser feito no lado do servidor.href
atributo do#favicon
usodocument.getElementById('favicon').setAttribute('href','favicon2.png')
Talvez você possa adicioná-lo à sua postagem @fserb?Versão jQuery:
ou melhor ainda:
Versão Vanilla JS:
fonte
Uma abordagem mais moderna:
Você pode usá-lo assim:
fonte
O favicon é declarado na tag head com algo como:
Você deve apenas passar o nome do ícone que deseja nos dados da visualização e jogá-lo na tag head.
fonte
Aqui estão alguns códigos que eu uso para adicionar suporte dinâmico a favicon no Opera, Firefox e Chrome. Eu não conseguia fazer o IE ou o Safari funcionar. Basicamente, o Chrome permite favicons dinâmicos, mas só os atualiza quando a localização da página (ou um
iframe
etc nela) muda tanto quanto eu sei:Para alterar os favoritos, basta
favicon.change("ICON URL")
usar o acima.(créditos para http://softwareas.com/dynamic-favicons pelo código em que baseei isso.)
fonte
Eu usaria a abordagem de Greg e criaria um manipulador personalizado para o favicon.ico. Aqui está um manipulador (simplificado) que funciona:
Em seguida, você pode usar esse manipulador na seção httpHandlers da configuração da web no IIS6 ou usar o recurso 'Mapeamentos de manipulador' no IIS7.
fonte
A única maneira de fazer isso funcionar para o IE é configurando o servidor da Web para tratar solicitações do * .ico para chamar a linguagem de script do lado do servidor (PHP, .NET, etc). Também configure * .ico para redirecionar para um único script e faça com que esse script entregue o arquivo favicon correto. Tenho certeza de que ainda haverá alguns problemas interessantes com o cache, se você quiser voltar e voltar no mesmo navegador entre diferentes favicons.
fonte
Existe uma solução de linha única para quem usa jQuery:
fonte
Ou se você quiser um emoticon :)
Adereços para https://koddsson.com/posts/emoji-favicon/
fonte
De acordo com o WikiPedia , você pode especificar qual arquivo favicon carregar usando a
link
tag nahead
seção, com um parâmetro derel="icon"
.Por exemplo:
Imagino que se você quisesse escrever algum conteúdo dinâmico para essa chamada, teria acesso aos cookies para recuperar as informações da sessão dessa maneira e apresentar o conteúdo apropriado.
Você pode se deparar com os formatos de arquivo (o IE suporta apenas o formato .ICO, enquanto quase todos os outros suportam imagens PNG e GIF) e, possivelmente, problemas de cache, tanto no navegador quanto por meio de proxies. Isso seria devido à intenção original do favicon, especificamente, para marcar um marcador com o mini-logotipo de um site.
fonte
Sim totalmente possível
por exemplo
Então qualquer servidor linguagem do lado / framework que você usa deve facilmente ser capaz de encontrar o arquivo com base na userId e servi-lo em resposta a esse pedido .
Mas para fazer favicons corretamente (é realmente um assunto realmente complexo ), consulte a resposta aqui https://stackoverflow.com/a/45301651/661584
Muito mais fácil que trabalhar todos os detalhes.
Aproveitar.
fonte
<link>
, mas, em vez disso, procure aapple-touch-icon
ou alguma outra variante desse tipo.Eu uso o favico.js nos meus projetos.
Permite alterar o favicon para uma variedade de formas predefinidas e também personalizadas.
Internamente, usa
canvas
para renderizar ebase64
URL de dados para codificação de ícones.A biblioteca também possui recursos interessantes: emblemas e animações de ícones; supostamente, você pode até transmitir o vídeo da webcam para o ícone :)
fonte
Eu uso esse recurso o tempo todo ao desenvolver sites ... para que eu possa ver rapidamente qual guia possui local, dev ou prod em execução.
Agora que o Chrome suporta favicons SVG, fica muito mais fácil.
Tampermonkey Script
Dê uma olhada em https://gist.github.com/elliz/bb7661d8ed1535c93d03afcd0609360f para obter um script tampermonkey que aponta para um site de demonstração no qual eu visitei https://elliz.github.io/svg-favicon/
Código básico
Adaptado de outra resposta ... poderia ser melhorado, mas bom o suficiente para minhas necessidades.
Basta colocar seu próprio SVG (talvez limpo com o SVGOMG de Jake Archibald, se você estiver usando uma ferramenta) na const, na parte superior. Verifique se ele é quadrado (usando o atributo viewBox) e você está pronto.
fonte