现在人们都喜欢在自己的网站上放上自己的favicon.ico,不仅可以标识网站的身份,自己看着也赏心悦目。但有很多原因会导致favicon.ico显示不出来,我总结了下,有以下几个原因:
图标的链接地址或者HTML代码出错了
这是个低级错误,但也不是不可能发生的,首先要看看图标的链接地址和HTML代码对不对。一般如果直接把favicon.ico图标放在网站的根目录下,页面是可以自动寻址到这个图标文件的。正确的代码如下:
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
火狐还支持GIF动画格式的图标,代码如下:
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="favicon.gif" type="image/gif" />
没有清空缓存
要清空浏览器的缓存,在IE中不仅要清空Internet临时文件,也要把历史记录清空。对于360、搜狗、傲游这些浏览器清空缓存会稍微麻烦点,它们会将favicon.ico存储在自己特定的文件夹里,以加快页面的访问速度。
要进入自己的Application Data中寻找360浏览器的数据,比如我的用户名为Jon。如果用的是XP,那么就找到C:\Documents and Settings\Jon\Application Data\360se\data\ico文件夹;如果是Win7,那么就找到C:\Users\Jon\AppData\Roaming\360se\data\ico文件夹。这里是360浏览器缓存网站favicon.ico的地方,把ico文件夹清空。
同样也要找Application Data,比如我的用户名为Jon。如果用的是XP,那么就找到C:\Documents and Settings\Jon\Application Data\SogouExplorer\FavIcon文件夹;如果是Win7,那么就找到C:\Users\Jon\AppData\Roaming\SogouExplorer\FavIcon文件夹。这里是搜狗浏览器缓存网站favicon.ico的地方,把FavIcon文件夹清空。
我使用的是傲游浏览器2,把它安装到了D:\Maxthon2目录下,那么在这个目录下找到名为Favicons的文件夹,这里是傲游浏览器缓存网站favicon.ico的地方,把Favicons文件夹清空。
favicon.ico格式不对
最好使用专业的Icon制作软件,可以在《免费的图标制作工具》一文中找一些使用。要想知道自己的图标文件格式是否正确,可以先下载其它网站的Icon来对比下。比如可以下载Google的favicon.ico文件,地址为:http://www.google.com/favicon.ico。把自己的favicon.ico和Google的favicon.ico放在一起,开启文件浏览的缩略图模式。看下面的图片,可以正确显示的就是正确格式,不能显示的就是错误格式。在下图中favicon-1.ico、favicon-2.ico都能正确显示,是正确的格式,而favicon-3.ico的格式错误,显示不正确。

一般网站用的favicon.ico的尺寸为16×16就可以了,
如果通过以上的方法favicon.ico仍然显示不了,那、那、那,那我也就没有办法了。
发表在 前端
|
标签为 favicon, 图标
|
在前端开发中可以使用document.referrer来获得前流量的来源参考页,也就是说可以用这个来获得是从哪个页面跳到本页面的。另外如果是在同一个域名下也可以使用windoww.opener对象去获取源页面的地址,如下面代码:
var referrer = window.opener.location.href;
Document.Referrer由于各种原因可能会丢失,相关的原因和解决办法可以参考《Document.Referrer丢失的几个原因》一文。
发表在 前端
|
标签为 referrer, 来源
|
原文:《20 Free Tutorials to Create Your Own Flash Game》。
Flash是一款充满趣味性与教育性于一体的创作软件,但要想学习和精通却十分地艰难。很多网站也提供了免费或收费的教程,在这里Dezinerfolio为Flash游戏开发者提供了一些免费的教程。每个学习Flash的人都希望能够创作自己的游戏作品,希望这些教程能够给予他们很多帮助。又:这里列出的教程都附带有源文件,按照教程里面的内容一步一步去做吧。

图标在网页和软件制作中经常用到,现在推荐一些免费好用的图标软件在这里。嘿嘿,我很喜欢免费开源的东西。

IcoFX是一款免费的图标编辑工具,让您轻松创建Windows XP和Windows Vista图标。在编辑区您可以轻松的预览、保存、更改您的图标。您可以将您喜欢的图像转换为图标或图标转换为图像。内置40多个效果,强大的亮度、对比度、饱和度、色调调整工具让您轻松修饰图标。主要特点如下:
- 支持PNG压缩的Vista图标
- 可以制作Windows 98/ME/2000/XP/Vista图标
- 支持Macintosh OS X图标
- 能够将Macintosh图标转换成Windows图标
- 支持图标库功能
- 制作网站图标
- 将各种图像文件转换成图标文件
- 增加、删除、修改exe文件中包含的图标
- 支持Alpha透明
- 批处理导入、导出、提取图标
- 多种语言支持
- 40多种效果和自定义滤镜
- 支持256×256分辩率
- 数据类型:2,16,256,真彩色,真彩色+Alpha
- 从32位exe和dll文件中提取图标
- 导入和导出图像
- 透明、亮度、对比度、饱和度、色调调整工具
- 更多
继续阅读 →
pc.de发出了10套共1000个Icon,这些Icon是基于Creative Commons Attribution 3.0 License协议,对于个人和商业可以免费使用。这10套Icon数量多,但是不失精美,十分适合用于网站。可以到这里下载。

继续阅读 →
下面是gentleface设计的Icon,可以免费用于非商业使用,喜欢的可以在这里下载。这一款Icon设计地非常简洁,但却十分精致,有黑白两套,这里只列出了白色系列的。

没有想到这些可爱的Icon是用字体做的,非常喜欢这些简洁可爱风格型的,不过做这些Icon的字体都是要收费的。Icon可以到这里下载大图,相应的字体可以点击这里寻找。



这里的代码是根据《JavaScript高级程序设计》第12章里面的示例重新整合的,关于Array的sort的用法可以看下《JavaScript高级程序设计》第12章,也可以看下《JavaScript sort()方法》。
下面是详细代码和注释:
/**
* 表格排序
*/
var sortTable = {
/**
* 转换函数
* 可以将 String 类型的变量转成 Int,Float,Date 的格式
* @param {String} v 原来的值
* @param {String} tp 值类型 int,float,date,默认为 string
*/
convert:function(v,tp){
switch(tp){
case 'int':
return parseInt(v);
case 'float':
return parseFloat(v);
case "date":
// IE6 只认 yyyy/mm/dd hh:mm:ss的格式
return new Date(Date.parse(v.replace(/\-/g,'/')));
default:
return v.toString().toLowerCase();
}
},
/**
* 对比两个行
* @requires sortTable.convert
* @param {Int} ic 排序要参照的表格序号
* @param {String} dt 值类型 int,float,date,默认为 string
*/
compareTrs:function(ic,dt){
/**
* 返回一个新的对比函数
* @requires sortTable.convert
* @param {Object} r1 第一行
* @param {Object} r2 第二行
*/
return function(r1,r2){
var v1 , v2;
// 如果节点拥有 data-sort 属性
// 则根据 data-sort 属性进行排序
if(r1.cells[ic].getAttribute('data-sort')){
v1 = sortTable.convert(r1.cells[ic].getAttribute('data-sort'),dt);
v2 = sortTable.convert(r2.cells[ic].getAttribute('data-sort'),dt);
}else{
// 如果节点没有 data-sort 属性
// 则根据节点的 nodeValue 值进行排序
v1 = sortTable.convert(r1.cells[ic].firstChild.nodeValue,dt);
v2 = sortTable.convert(r2.cells[ic].firstChild.nodeValue,dt);
}
// 默认降序排列
if(v1 > v2){
return -1;
}else if(v1 < v2){
return 1;
}else{
return 0;
}
};
},
/**
* 表格排序函数
* 这个表格要有 thead 和 tbody
* @requires sortTable.compareTrs
* @param {String} tid 要排序的表格 ID
* @param {Int} ic 排序要参照的表格序号
* @param {String} tp 值类型 int,float,date,默认为 string
*/
sortTr:function(tid,ic,dt){
var tb = document.getElementById(tid), // 获得表格 table
bd = tb.tBodies[0], // 获得表格的tbody
trs = bd.rows, // 获得表格 tbody 下的行集合
arr = [], // 用于存储 tr 行集合的列表
i=l=trs.length, // 获得 tr 行集合的个数
fg = document.createDocumentFragment(), // 临时片断
st=tb.getAttribute('data-sort');
// 将 tr 行存储到 arr 中
while(i--){
arr[i] = trs[i];
}
// st 可能为 0 或者 NaN
if(st!=null && (parseInt(st)==ic)){
// 如果表格当前的排序号和 ic 相等
// 表明已经按照这个属性排序过了
// 反排序就可以了
arr.reverse();
}else{
arr.sort(sortTable.compareTrs(ic,dt));
tb.setAttribute('data-sort',ic);
}
for(i=0;i<l;i++){
fg.appendChild(arr[i]);
}
bd.appendChild(fg);
tb.setAttribute('data-sort',ic);
tb = bd = trs = arr = i = l = fg = null;
}
};
继续阅读 →
发表在 前端
|
标签为 sort, table, 排序, 表格
|
IE下的mouseenter和mouseleave方法的好处我就不多说了,关于compareDocumentPosition方法的详细解释请参考《跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition》,在这里我只给出在非IE中实现这两种功能的简易方法。
下面是模拟IE下的mouseenter和mouseleave功能代码,里面也加上了详细的注释。
/**
* 只在非IE中使用
* 模拟 IE 中 mouseenter 和 mouseleave 的效果
* @param {Event} e 发生的事件
* @param {Function} fun 触发的行为
*/
var hover = function(e,fun){
/**
* 因为这个函数只在非IE的浏览器中使用
* 所以可以使用 e.relatedTarget
* 来获得与事件的目标节点相关的节点
*/
var t = e.relatedTarget,
// 获得触发此事件的节点
t2 = e.target;
/**
* 如果当前的节点与触发此事件的节点为同一节点
* 并且事件的目标节点不是当前节点的子节点
* 则触发行为
*/
if(this == t2 && t && !(this.compareDocumentPosition(t) == 20)){
fun.call(this);
}
t = t2 = null;
}
上面的代码看似很多,但去除注释后代码就非常少了。继续说这个函数的用法,设有如下的DOM结构:
继续阅读 →
转自《[图说]【喷嚏图卦20101111】某些人已经习惯了一个人》
爱迪生:天才是1%的灵感加上99%的汗水,但那1%的灵感是最重要的,甚至比那99%的汗水都要重要。
拿破仑:中国是睡狮,一旦醒来,整个世界都会为之颤抖。它在沉睡着,谢谢上帝,让它睡下去吧!
黑格尔:存在即合理,凡是合乎理性的东西都是现实的,凡是现实的东西都是合乎理性的。
麦克阿瑟:我们真正的敌人坐在克里母林宫里,如果和中国开战,那将是在错误的时间,错误的地点,和错误的对手打了一场错误的战争。
发表在 文史
|
标签为 拿破仑, 爱迪生, 错误
|