Saya memiliki aplikasi web yang bermerek sesuai dengan pengguna yang saat ini masuk. Saya ingin mengubah favicon halaman menjadi logo label pribadi, tetapi saya tidak dapat menemukan kode atau contoh bagaimana untuk melakukan ini. Adakah yang berhasil melakukan ini sebelumnya?
Saya membayangkan memiliki selusin ikon di folder, dan referensi yang menggunakan file favicon.ico baru saja dihasilkan secara dinamis bersama dengan halaman HTML. Pikiran?
javascript
html
dom
favicon
SqlRyan
sumber
sumber
Jawaban:
Kenapa tidak?
Firefox seharusnya keren dengan itu.
diedit untuk menimpa ikon yang ada dengan benar
sumber
shortcut
darirel
atribut.shortcut
adalah hubungan tautan IE-proprietary yang tidak valid!Berikut beberapa kode yang berfungsi di Firefox, Opera, dan Chrome (tidak seperti setiap jawaban lain yang diposting di sini). Berikut adalah demo kode yang berbeda yang juga berfungsi di IE11 . Contoh berikut mungkin tidak berfungsi di Safari atau Internet Explorer.
Anda kemudian akan menggunakannya sebagai berikut:
Singkirkan atau lihat demo .
sumber
document.head || document.head = document.getElementsByTagName('head')[0];
Uncaught ReferenceError: Invalid left-hand side in assignment
Jika Anda memiliki cuplikan HTML berikut:
Anda dapat mengubah favicon menggunakan Javascript dengan mengubah elemen HREF pada tautan ini, misalnya (dengan asumsi Anda menggunakan JQuery):
Anda juga dapat membuat elemen Canvas dan mengatur HREF sebagai ToDataURL () kanvas, seperti halnya Favicon Defender .
sumber
favicon.png
. Ini mungkin perlu dilakukan sisi server.href
atribut#favicon
menggunakandocument.getElementById('favicon').setAttribute('href','favicon2.png')
Mungkin Anda bisa menambahkannya ke posting Anda @ fserb?Versi jQuery:
atau bahkan lebih baik:
Versi vanilla JS:
sumber
Pendekatan yang lebih modern:
Anda kemudian dapat menggunakannya seperti ini:
sumber
Favicon dideklarasikan di tag kepala dengan sesuatu seperti:
Anda harus bisa hanya memberikan nama ikon yang Anda inginkan di dalam data tampilan dan membuangnya ke tag kepala.
sumber
Berikut beberapa kode yang saya gunakan untuk menambahkan dukungan favicon dinamis ke Opera, Firefox dan Chrome. Saya tidak bisa mengaktifkan IE atau Safari. Pada dasarnya Chrome memungkinkan favicon dinamis, tetapi hanya memperbaruinya ketika lokasi halaman (atau yang
iframe
lain di dalamnya) berubah sejauh yang saya tahu:Untuk mengubah favicon, cukup
favicon.change("ICON URL")
gunakan yang di atas.(kredit untuk http://softwareas.com/dynamic-favicons untuk kode saya berdasarkan ini.)
sumber
Saya akan menggunakan pendekatan Greg dan membuat handler kustom untuk favicon.ico Ini adalah handler (disederhanakan) yang berfungsi:
Kemudian Anda dapat menggunakan penangan itu di bagian httpHandlers dari konfigurasi web di IIS6 atau menggunakan fitur 'Pemetaan Penangan' di IIS7.
sumber
Satu-satunya cara untuk membuat ini bekerja untuk IE adalah untuk membuat server web Anda untuk memperlakukan permintaan * .ico untuk memanggil bahasa skrip sisi server Anda (PHP, .NET, dll). Juga siapkan * .ico untuk mengarahkan ulang ke satu skrip dan minta skrip ini mengirimkan file favicon yang benar. Saya yakin masih akan ada beberapa masalah yang menarik dengan cache jika Anda ingin dapat bangkit bolak-balik di browser yang sama antara favicon yang berbeda.
sumber
Ada solusi baris tunggal untuk mereka yang menggunakan jQuery:
sumber
Atau jika Anda menginginkan emotikon :)
Alat Peraga untuk https://koddsson.com/posts/emoji-favicon/
sumber
Menurut WikiPedia , Anda dapat menentukan file favicon mana yang akan dimuat menggunakan
link
tag dihead
bagian ini, dengan parameterrel="icon"
.Sebagai contoh:
Saya membayangkan jika Anda ingin menulis beberapa konten dinamis untuk panggilan itu, Anda akan memiliki akses ke cookie sehingga Anda dapat mengambil informasi sesi Anda seperti itu dan menyajikan konten yang sesuai.
Anda mungkin tidak menyukai format file (IE dilaporkan hanya mendukung format .ICO itu, sementara kebanyakan orang lain mendukung gambar PNG dan GIF) dan mungkin masalah caching, baik pada browser dan melalui proxy. Ini mungkin karena tujuan asli favicon, khususnya, untuk menandai bookmark dengan logo mini situs.
sumber
Ya, sangat mungkin
misalnya
Maka bahasa sisi server apa pun / kerangka kerja yang Anda gunakan harus dapat dengan mudah menemukan file berdasarkan userId dan menyajikannya sebagai tanggapan atas permintaan itu .
Tetapi untuk melakukan favicons dengan benar (sebenarnya ini adalah subjek yang sangat kompleks ) silakan lihat jawabannya di sini https://stackoverflow.com/a/45301651/661584
Jauh lebih mudah daripada mengerjakan sendiri semua detailnya.
Nikmati.
sumber
<link>
, tetapi mencariapple-touch-icon
atau beberapa varian lainnya.Saya menggunakan favico.js dalam proyek saya.
Hal ini memungkinkan untuk mengubah favicon ke berbagai bentuk yang telah ditentukan dan juga yang kustom.
Secara internal itu digunakan
canvas
untuk rendering danbase64
URL data untuk pengkodean ikon.Perpustakaan juga memiliki fitur-fitur yang bagus: lencana ikon dan animasi; konon, Anda bahkan dapat melakukan streaming video webcam ke ikon :)
sumber
Saya menggunakan fitur ini setiap saat ketika mengembangkan situs ... jadi saya dapat melihat sekilas tab mana yang memiliki lokal, dev atau prod berjalan di dalamnya.
Sekarang Chrome mendukung favicon SVG itu membuatnya jauh lebih mudah.
Skrip Tampermonkey
Pandang sebentar di https://gist.github.com/elliz/bb7661d8ed1535c93d03afcd0609360f untuk skrip tampermonkey yang menunjuk ke situs demo yang saya buang di https://elliz.github.io/svg-favicon/
Kode dasar
Adaptasi ini dari jawaban lain ... dapat ditingkatkan tetapi cukup baik untuk kebutuhan saya.
Cukup masukkan SVG Anda sendiri (mungkin dibersihkan dengan SVGOMG Jake Archibald jika Anda menggunakan alat) ke dalam const di bagian atas. Pastikan persegi (menggunakan atribut viewBox) dan Anda siap melakukannya.
sumber