Dynamic favicon using image manipulation similar to Gmail adding a count

后端 未结 1 1075
执笔经年
执笔经年 2020-12-07 08:55

I tried to figure it out looking at the source code but I couldn\'t figure it out.

I would like to know how to make a dynamic favicon with a count like Gmail does. <

相关标签:
1条回答
  • 2020-12-07 09:00

    You can make an image with the canvas element, and then just replace the current favicon. Check out the following link for a good explanation on it. Reference

    Code is from the above reference.

    Markup

    <link id="favicon" rel="icon" type="image/png" href="image.png" /> 
    

    JS

      (function () {
        var canvas = document.createElement('canvas'),
            ctx,
            img = document.createElement('img'),
            link = document.getElementById('favicon').cloneNode(true),
            day = (new Date).getDate() + '';
        
        if (canvas.getContext) {
          canvas.height = canvas.width = 16; // set the size
          ctx = canvas.getContext('2d');
          img.onload = function () { // once the image has loaded
            ctx.drawImage(this, 0, 0);
            ctx.font = 'bold 10px "helvetica", sans-serif';
            ctx.fillStyle = '#F0EEDD';
            if (day.length == 1) day = '0' + day;
            ctx.fillText(day, 2, 12);
            link.href = canvas.toDataURL('image/png');
            document.body.appendChild(link);
          };
          img.src = 'image.png';
        }
        
        })();
    

    Edit

    Must have an image set as well.

    0 讨论(0)
提交回复
热议问题