web-dev-qa-db-ja.com

Gmailと同様の画像操作を使用した動的ファビコンによるカウントの追加

ソースコードを見て理解しようとしましたが、理解できませんでした。

Gmailのようにカウントでダイナミックファビコンを作成する方法を知りたいです。

enter image description here

これを行う方法について何かアイデアはありますか?

37
Santiago

canvas要素を使用して画像を作成し、現在のファビコンを置き換えることができます。それについての良い説明については、次のリンクをチェックしてください。 参照

コードは上記のリファレンスからのものです。

マークアップ

<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';
    }

    })();

編集

画像も設定する必要があります。

59
Loktar