如何擷取網站icon

來源:互聯網
上載者:User

擷取網站icon,常用最簡單的方法就是通過website/favicon.ico來擷取,不過由於很多網站都是在頁面裡面設定favicon,所以此方法很多情況都不可用。

更好的辦法是通過google提供的服務來實現:http://www.google.com/s2/favicons?domain=http://www.baidu.com

代碼:

<!doctype html><html><head>    <meta charset="utf-8">    <style type="text/css">    #input {        height: 300px;        padding: 10px 5px;        line-height: 20px;        width: 1000px;    }    #submit {        height: 30px;        text-align: center;        color: #ffffff;        line-height: 30px;        width: 80px;        background-color: blue;        margin-top: 20px;    }    #result {        margin-top: 20px;    }    #result li {        height: 40px;        line-height: 40px;        float: left;        margin: 10px 14px;    }    </style></head><body>    <textarea id="input" placeholder="輸入多個網址以空格間隔"></textarea>    <div id="submit">擷取icon</div>    <ul id="result">    </ul>    <script type="text/javascript">    var input = document.getElementById("input");    var submit = document.getElementById("submit");    var result = document.getElementById("result");    var val;    function trim(str) {        var whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';        for (var i = 0, len = str.length; i < len; i++) {            if (whitespace.indexOf(str.charAt(i)) === -1) {                str = str.substring(i);                break;            }        }        for (i = str.length - 1; i >= 0; i--) {            if (whitespace.indexOf(str.charAt(i)) === -1) {                str = str.substring(0, i + 1);                break;            }        }        return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';    }    function getFavIconUrl(url) {        var prohost;        prohost = url.match(/([^:\/?#]+:\/\/)?([^\/@:]+)/i);        prohost = prohost ? prohost : [true, "http://", document.location.hostname];        //補全url        if (!prohost[1]) {            prohost[1] = "http://";        }        //抓取ico        return "http://www.google.com/s2/favicons?domain=" + prohost[1] + prohost[2];    }    submit.onclick = function() {        val = input.value;        if (!val) alert("輸入為空白!");        val = val.split(" ");        val.forEach(function(item) {        item = trim(item);            if (!item) return;            result.innerHTML += "<li>" + item + "<img src='" + getFavIconUrl(item) + "'></li>";        });    };    </script></body></html>

 

原始碼下載:http://files.cnblogs.com/shinnyChen/getIcon.rar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.