如何获取网站icon有哪些可行的方法


Posted in Javascript onJune 05, 2014

获取网站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>

源代码下载
Javascript 相关文章推荐
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
May 07 Javascript
JS过滤url参数特殊字符的实现方法
Dec 24 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 Javascript
JavaScript实现动态创建CSS样式规则方案
Sep 06 Javascript
jQuery中find()方法用法实例
Jan 07 Javascript
location.hash保存页面状态的技巧
Apr 28 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
May 09 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
Dec 08 Javascript
使用webpack4编译并压缩ES6代码的方法示例
Apr 24 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
Mar 06 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
Jun 05 #Javascript
网页右下角弹出窗体实现代码
Jun 05 #Javascript
获取中文字符串的实际长度代码
Jun 05 #Javascript
jQuery文件上传插件Uploadify使用指南
Jun 05 #Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Jun 05 #Javascript
首页图片漂浮效果示例代码
Jun 05 #Javascript
原生js实现fadein 和 fadeout淡入淡出效果
Jun 05 #Javascript
You might like
PHP中数组的分组排序实例
2014/06/01 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
Angularjs 基础入门
2014/12/26 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
Python读写配置文件的方法
2015/06/03 Python
Python编程中的异常处理教程
2015/08/21 Python
详解Python中heapq模块的用法
2016/06/28 Python
Python处理文本换行符实例代码
2018/02/03 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
Python底层封装实现方法详解
2020/01/22 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
德国旅游网站:weg.de
2018/06/03 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
尽职尽责村干部自我鉴定
2014/01/23 职场文书
2014年维稳工作总结
2014/11/18 职场文书
2014年度思想工作总结
2014/11/27 职场文书
升学宴学生答谢词
2015/01/05 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏