首页 > 解决方案 > 动态生成的 Favicon Icon 在 IE 和 edge 中非常小。

问题描述

我正在尝试调用返回二进制数据(base64)的 API。当我上传图像时,它会以二进制格式存储在数据库中,并且页面图标会动态更新。在 chrome 和 Firefox 中,页面图标可见并按预期工作。但是在 Edge 和 IE 中,图像看起来太小并且被拉伸。有人知道我该怎么做吗?

  document.title = title;
            var src = "api/file/getPageLogo";
            src = src + '?=' + Math.random(); 
            var link = document.createElement('link'),
                oldLink = document.getElementById('dynamic-favicon');
            link.id = 'dynamic-favicon';
            link.rel = 'icon';
            link.href = src;
            if (oldLink) {
                document.head.removeChild(oldLink);
            }
            document.head.appendChild(link);  

在 IE 中不起作用

在 Chrome 中工作

标签: javascripthtmldomwebpagefavicon

解决方案


实际问题是即使图像尺寸是 32*32,在将其转换为 base64 格式时,代码会将尺寸转换为 200 * 60,这是实现其他功能所需的。

var base64Data = FileTools.GetResizedImageBase64FromDataUri(image.FileData, 200, 60);

简单地通过分离逻辑来实现两种不同的功能并将一个的维度更改为 32*32 解决了这个问题。


推荐阅读