Mar
07

今天在写一个鼠标悬停下拉菜单过程中,遇到一个很抓狂的问题。既然是鼠标悬停效果,那就用到了jQuery的2个事件,mouseover和mouseout(在jQuery 1.3的API手册中只有这两个鼠标移入移出事件)。

先看下使用mouseout的效果:

Tips:您可以在运行代码前对其进行修改!

我们发现使用mouseout时,鼠标只要在容器里一移动,就被出发了hide(),其实是因为mouseout事件也会影响到子元素,也就是事件可能被同时绑定到了该容器的子元素上,所以鼠标移出每个子元素也都会触发我们的hide()。
[阅读全文:jQuery中使用mouseleave代替mouseout]

Feb
25

几款浏览器对透明度的支持方式各不相同,为了保证在IE, Firefox, Chrome, Safari等主流浏览器下都能正常显示透明度的效果,我们可以定义一个透明度的class,因为一写就要写3条,省的每次都复制来复制去了。
具体代码如下:

.transparent{
filter:alpha(opacity=60);  /*支持 IE 浏览器*/
-moz-opacity:0.60; /*支持 FireFox 浏览器*/
opacity:0.60;  /*支持 Chrome, Opera, Safari 等浏览器*/
}
Feb
21

一般来说,在对一个文件域(input type=”file”)使用了验证后,我们总会希望把文件域中的值给清空了(否则错误的文件仍然会被提交),而在IE中,安全设置的原因,是不允许更改文件域的值的(也就是不能使用val(“”))

那么很显然,我们就只能换个思路,把这个input元素复制一个,然后将原来的删除。
在IE下复制元素的时候,其中的值是不会被复制的,所以就达到了清空文件域的目的了。
而在Firefox下,其中的值也会被一同复制,那么我们就顺便清空一下就做到兼容了。
代码如下:

var file = $(":file");
file.after(file.clone().val(""));
file.remove();
Feb
19

今天在用ASP.NET实现图片上传功能时遇到一个小问题。

使用表单文件域(input type=”file”)时,在PostBack中使用Request.Files获取不到文件。研究了半天,发现在input标签中使用runat=”server”后,是能够正常获取的。但是为了前端的元素ID不被修改,我尽可能不使用runat=”server”。

网上查阅了一下,最终让我找到了原因。用了高级货之后,忘本了呵呵。

要让form能够传递文件的话,必须要在form标签中加入enctype=”multipart/form-data”

<form enctype="multipart/form-data" ID="form1" runat="server">
      <input type="file" name="filename" />
</form>

在input 中使用了runat=”server”,那么ASP.NET会自动处理这些事情,而如果我们要自己DIY,就得记住这些啦!

Dec
05

今天使用Visual Studio 2008制作前端页面的时候,将原先已经制作好的html页内容完完整整一字不差地复制到新建的Default.aspx后,用除了IE6的大部分浏览器(我测试了IE7/8,Firefox),均能够正常显示布局(我已经在静态页上进行了css hack),而唯独IE6特立独行,来了个大花脸。。囧

测试了各种可能性,最后我保证了aspx与html也输出完全一致(内容本来就一样,就是格式不同),不过仍然失败。

排除了各种可能,判断很有可能是VS在输出aspx的时候出现了问题。网上查阅了一下,发现果然如此。
[阅读全文:IE6问题:html静态页正常而使用aspx后出现严重问题]

Aug
16

今天在修改一个tab样式的时候遇到一个问题,用了span:hover,想达到一个鼠标悬停效果。可是调试了半天,hover的效果就是不出现。
之前错误的书写顺序:

span{display: block; width: 110px; height: 40px;}
span:hover{background: 0 -40px;}
span.button-1{background:url(../images/tabs/button_1.png);}

这样测试出来的结果跟我预期的不一样,我想在span.button-1定义背景图片,然后在鼠标经过时hover显示悬停效果。本应该是会移到背景的第40像素开始显示,可是仍然只显示原始图像。
经过多次测试,终于发现是由于伪类的书写顺序不正确造成的。网上查阅了一下资料,的确伪类有明确的书写顺序规定,如果错了的话就可能造成显示结果不正确。
后来分析一下我的CSS,发现可能是由于最后一行button-1的样式把hover的background又给覆盖了。于是把伪类放到最后,也就是必须将伪类写在本身选择器之后。问题解决。

虽然我的这个问题和伪类之间的顺序并不是很相关,但是这些伪类之间的顺序还是值得关注一下的,省的以后又出现同样的问题。
顺序如下:

a:link
a:visited
a:hover
a:active

总结一下就是LVHA,听说这个叫爱恨原则,LoVe/HAte,便于记忆吧呵呵。

Feb
27

今天回家格式化了N71,记得上次N71 系统重装已经过了1年半了,现在也已经对手机各种各样的程序失去了兴趣,平时只要发发短信,上上QQ和飞信,再加个UCWeb就可以了。

今天在逛dospy的时候看到好多关于“S60智能手机短信息功能假死”的文章,基本上都是转来转去抄来抄去的,没有什么具体的原理也为了安全考虑没有公布攻击方法,不过这个对于搜索引擎主导地位的今天,只要被公开了总归能被搜到。

找到一篇文章:Nokia S60 SMS/MMS (Curse of Silence) Denial of Service Vulnerability

全部是英文的,应该也是转载国外的文章,不过写作很规范,让人一目了然。

大概就是说的S60部分版本的系统存在漏洞,如果一条短信息以电子邮件格式发送,并包含超过32个字符的email地址就会被锁死,无法接收新的短信。

我的N71是S60 3rd,我只知道是OS9.1,具体版本我也不高兴去了解了,所以是在受影响范围中。

试验了一下,果然是有效果的,N71上的具体表现为在接受到此类短信后,不会有正常的提示,直接弹出“WatcherMainThread”的错误提示,并且会不断提示。

因为已经作好了再一次“*#7370#“(软格的命令)的准备,所以放心大胆地做了试验。因为最后有工具可以清除和修复,所以根本不用担心。

下面是专杀工具,下载的时候看好自己是什么版本的系统。

CurseSMS
   English (S60 Symbian 7/8): Download Now
   English (S60 Symbian 9): Download Now

此漏洞危害面确实很广,如果有人吃饱了没事恶作剧差不多很多人都要受影响。以后我手机常备这个工具,以防不测。。

Feb
07

服务器上的ESET NOD32 3.0 在更新病毒库如果出现提示:“不明严重错误0*101a、一般编译器错误、病毒库初始化失败、病毒库更新失败、无法升级、解压文件时出错”,在ESET官方找到了解决方法:
1、先打开NOD32的主界面,按键盘的F5键,进入高级设置窗口。
2、选择左边菜单中的“更新” →  右边的“清除更新高速缓存”。
3、重新启动计算机,再更新病毒库。记得一定要重启!
      NOD

经本人亲自测试,成功~记得清除完了要重启计算机,否则还是报错的!

Dec
21

这次在网站的URL静态化中需要加入一个包含中文的参数,比如:/list-103.类别.html

中文部分就在类别处,由于我只是将URL中需要的部分用正则表达式提取出来然后Rewrite到响应的页面即可,所以不存在匹配中文这种稍微有点复杂的正则表达式。

不过这条规则使用以后,重写后显示的页面出现了问题,于是加了个echo显示传入的“类别”。

发现是乱码,然而如果我在浏览器中直接输入重写前的网址,中文是能够显示的,因此这里在URL中可能存在编码不统一的问题。

URL中其实也是有编码的,百度和谷歌识别出来的URL就是用了不同的编码,Google是UTF8的,而百度是GB2312的,所以对于那些URL中包含中文的朋友来说的确是挺痛苦的,鱼与熊掌不可兼得。

由于这次我使用的是GBK编码,所以URL应该也是属于GB2312的,然而经过资料查阅,发现不管是Apache还是ISAPI_Rewrite,URL均识别的是UTF8编码的,因此,这里就出现了乱码。

需要说的是,这里使用UNICODE过的URL也是没用的,因为编码不同,UNICODE出来的URL地址也是不同的,所以最终的解决办法,也只有是将网页转换成UTF8编码了。

Dec
19

那天学院网站正式上线后,不少用傲游、世界之窗之类的同学和我说看到网站的Favicon仍然是PHPCMS的。
起初我以为是由于当初测试版网站运行时因使用过默认模板而将Favicon残留在缓存中了,让他们清空世界之窗或者傲游的Favicon缓存

不过好像没有效果,当网站载入一遍之后又出现了PHPCMS 的默认Favicon。

于是我检查了好几遍网页的HTML代码,但是并没有发现定义网站Favicon的代码。

<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />

最后一个办法就是去找到这个.ico文件,然后删除咯~在网站根目录发现Favicon.ico,个人认为浏览器会默认读取网站根目录下的Favicon.ico来作为网站的favicon,这样是不用在HTML中定义的。

top
45 queries. 0.448 seconds.