ฉันใช้คุณลักษณะนี้ตลอดเวลาเมื่อมีการพัฒนาเว็บไซต์ ... ดังนั้นฉันจึงสามารถดูได้ทันทีว่าแท็บใดที่มีการทำงานในท้องถิ่น dev หรือแยงทำงานอยู่
ตอนนี้ Chrome สนับสนุน SVV favicons แล้วทำให้ง่ายขึ้นมาก
สคริปต์ Tampermonkey
ไปที่https://gist.github.com/elliz/bb7661d8ed1535c93d03afcd0609360fเพื่อดูสคริปต์ tampermonkey ที่ชี้ไปยังไซต์ตัวอย่างที่ฉันไปดู https://elliz.github.io/svg-favicon/
รหัสพื้นฐาน
ดัดแปลงมาจากคำตอบอื่น ... สามารถปรับปรุงได้ แต่ก็ดีพอสำหรับความต้องการของฉัน
(function() {
'use strict';
// play with https://codepen.io/elliz/full/ygvgay for getting it right
// viewBox is required but does not need to be 16x16
const svg = `
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<circle cx="8" cy="8" r="7.2" fill="gold" stroke="#000" stroke-width="1" />
<circle cx="8" cy="8" r="3.1" fill="#fff" stroke="#000" stroke-width="1" />
</svg>
`;
var favicon_link_html = document.createElement('link');
favicon_link_html.rel = 'icon';
favicon_link_html.href = svgToDataUri(svg);
favicon_link_html.type = 'image/svg+xml';
try {
let favicons = document.querySelectorAll('link[rel~="icon"]');
favicons.forEach(function(favicon) {
favicon.parentNode.removeChild(favicon);
});
const head = document.getElementsByTagName('head')[0];
head.insertBefore( favicon_link_html, head.firstChild );
}
catch(e) { }
// functions -------------------------------
function escapeRegExp(str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
function replaceAll(str, find, replace) {
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}
function svgToDataUri(svg) {
// these may not all be needed - used to be for uri-encoded svg in old browsers
var encoded = svg.replace(/\s+/g, " ")
encoded = replaceAll(encoded, "%", "%25");
encoded = replaceAll(encoded, "> <", "><"); // normalise spaces elements
encoded = replaceAll(encoded, "; }", ";}"); // normalise spaces css
encoded = replaceAll(encoded, "<", "%3c");
encoded = replaceAll(encoded, ">", "%3e");
encoded = replaceAll(encoded, "\"", "'"); // normalise quotes ... possible issues with quotes in <text>
encoded = replaceAll(encoded, "#", "%23"); // needed for ie and firefox
encoded = replaceAll(encoded, "{", "%7b");
encoded = replaceAll(encoded, "}", "%7d");
encoded = replaceAll(encoded, "|", "%7c");
encoded = replaceAll(encoded, "^", "%5e");
encoded = replaceAll(encoded, "`", "%60");
encoded = replaceAll(encoded, "@", "%40");
var dataUri = 'data:image/svg+xml;charset=UTF-8,' + encoded.trim();
return dataUri;
}
})();
เพียงแค่แสดง SVG ของคุณเอง (อาจทำความสะอาดด้วย SVGOMG ของ Jake Archibald หากคุณใช้เครื่องมือ) ลงไปที่กลุ่มที่ด้านบน ตรวจสอบให้แน่ใจว่าเป็นรูปสี่เหลี่ยม (ใช้แอตทริบิวต์ viewBox) และคุณก็พร้อมใช้งาน