ahooks-v2
Version:
react hooks library
33 lines (26 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var react_1 = require("react"); // image/vnd.microsoft.icon MIME类型只有当图像真的是ICO文件时才会起作用
// image/x-icon 会同时也适用于位图与GIF
// 主要是为了兼容扩展名为ico的非ico文件
var ImgTypeMap = {
SVG: 'image/svg+xml',
ICO: 'image/x-icon',
GIF: 'image/gif',
PNG: 'image/png'
};
var useFavicon = function useFavicon(favUrl) {
react_1.useEffect(function () {
if (!favUrl) return;
var cutUrl = favUrl.split('.');
var imgSuffix = cutUrl[cutUrl.length - 1].toLocaleUpperCase();
var link = document.querySelector("link[rel*='icon']") || document.createElement('link');
link.type = ImgTypeMap[imgSuffix];
link.href = favUrl; // 大部分浏览器只会识别'icon' 只有IE会识别整个名称'shortcut icon'
link.rel = 'shortcut icon';
document.getElementsByTagName('head')[0].appendChild(link);
}, [favUrl]);
};
exports["default"] = useFavicon;