favicon の画像テキストを取得

  • /*
     * @title favicon の画像テキストを取得
     * @description Ready2Search 用に書きました。
     * @include http://*
     * @license MIT License
     */
    
    /*
    テキストから読み込むと透過が反映されなかったので、透過ありの時は画像ファイルとして保存してから読み込んで下さい。
    透過なしなら URL の , 以降をコピペで済みます。
    favicon が別ドメインにある場合は、諦めて Hatena::Favicon のお世話になってます。
    */
    
    (function () {
    
    	var i, x, l, r, u = '/favicon.ico', d = document, c = d.createElement('canvas'), p = new Image(),
    	 f = function () {
    
    		x.drawImage(p, 0, 0, p.width, p.height, 0, 0, 16, 16);
    
    		try {
    
    			u = c.toDataURL('image/png');
    
    		} catch (e) {
    
    			u = 'http://favicon.hatena.ne.jp/?url=' + encodeURIComponent(location.href);
    
    		}
    
    		window.open(u);
    		d.body.removeChild(c);
    
    	};
    
    	c.width = c.height = 16;
    	d.body.appendChild(c);
    	x = c.getContext("2d");
    
    	if (p.addEventListener) p.addEventListener('load', f, false);
    	 else if (p.attachEvent) p.attachEvent('onload', f);
    	 else p.onload = f;
    
    	l = d.getElementsByTagName('link');
    
    	for (i = 0; i < l.length; i++) {
    
    		r = l[i].getAttribute('rel');
    
    		if (r && r.toLowerCase() == 'shortcut icon') {
    
    			u = l[i].href;
    			break;
    
    		}
    
    	}
    
    	p.src = u;
    
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2011/09/09 17:52:55 - 2011-09-09
  2. 2011/09/09 17:44:37 - 2011-09-09