ino46's のロゴ

[Bookmarklet] 閲覧中のページの Favicon を取得するよ。

大好き Favicon

最近、すてきな Favicon が増えてきました。
Favicon って……本当にイイですよね!
そんな Favicon マニア専用のブックマークレットです。
このブックマークレットを実行すると、開いているページの Favicon を新しいウィンドウで表示します。
Windows 用の Firefox 3 と Opera 9.5 で動作確認。

仕組み

  1. rel 属性に icon もしくは shortcut icon が指定された link 要素を探して Favicon の URL を取得し表示する。
  2. Favicon 用の link 要素が無い場合には http://ホスト/favicon.ico を表示する。

問題点

Favicon が無いページでも何とか表示しようと頑張っちゃう点。
(XMLHttpRequest オブジェクトの status プロパティで判断するのは、即表示されないのでヤメタ。)

ソース

javascript:(function(){
    var f=document.evaluate('//link[(@rel=\'icon\') or (@rel=\'shortcut icon\') or (@rel=\'ICON\') or (@rel=\'SHORTCUT ICON\')][1]/@href',document,null,XPathResult.STRING_TYPE,null);
    var u=f.stringValue;
    var v=
        (u=='')?'http://'+location.host+'/favicon.ico':
        (u.substring(0,7)!='http://')?'http://'+location.host+u:
        u;
    open(v,'null');
})();

2 コメント:

匿名 さんのコメント...

ZJ4 MP6 BP6 2;3 04


GP6 :神 .

2009.09.20

Koonies さんのコメント...

Google Chromeでも動きましたよ。
探していたので助かりました!