Moonless.net首页

Cutsin受难记

Home Blog 归宿美林湾 实验室

2009年6月18日 星期四

稳定访问被墙的blogger、youtube甚至google的方法

同事: www.google.cn的服务器在国内,不会被盾,所以可以用它当代理,因为是官方的,速度极快。
可以使用代理自动配置脚本,这样就可以做到只针对blogger和youtube这两家网站使用代理,其它网站直接连接,不影响浏览速度,不去来回切换。

最近google.com也常被墙,索性把google.com也加进去了……

function FindProxyForURL(url,host){
if(dnsDomainIs(host, ".blogspot.com")){
return "PROXY 203.208.37.160:80";
}
if(dnsDomainIs(host, ".blogger.com")){
return "PROXY 203.208.37.160:80";
}
if(dnsDomainIs(host, ".youtube.com")){
return "PROXY 203.208.37.160:80";
}
if(dnsDomainIs(host, ".google.com")){
return "PROXY 203.208.37.160:80";
}
return "DIRECT";
}


附使用方法:
把以上脚本存为proxy.pac,放到某盘(如e),勾选浏览器代理设置中的“使用自动配置脚本”,填入“file:///e:/proxy.pac”

标签: ,

2009年4月1日 星期三

浅析ie6 css expression效率、覆盖原理、优先问题

通常expression就是不标准、效率低、消耗大、不稳定的代名词,原因大家都知道,很早以前就知道用简单的表达式和重置可以克服这个问题,但由于以前一直规定不允许用expression,所以也没细看是怎么重置的,知道最近看了old9去年的文章才略知一二,其实原理很简单,无非就是利用级联的规则重新赋值,从这个例子可以看到,ie6仍是按照css的级联规则来决定是否、何时执行expression,而expression的执行次数除了事件之外,和它所能作用的元素的个数有关,重置其实是为html标签增加style属性(Inline Styles),而Inline Styles优先级通常是最高的,所以内部样式、外联样式定义的expression不再执行,也就达到了我们的目的:减少expression多次执行带来的灾难。

个人觉得对于IE6这种东西,用简单的expression修正一些不舒服的bug是完全没有问题的,比如:

IE6不缓存背景图的bug:
body {_zoom:expression(function(x){document.execCommand('BackgroundImageCache', false, true);x.style.zoom=1;}(this))}


没有max-width、max-height,ie6对于元素的高宽难以限制,也可以用这种方法;
有人会说用脚本更好,但举个例子吧,我们都遇到过图片缩放问题,用户上传了分辨率超大的图片,如何限制在一个较小的区域内并且等比缩放呢?用脚本缩放会出现一个情况,在网络较慢的时候,页面会先显示一张大图,然后瞬间被缩放,图多的时候尤为明显,IE6中onload事件对这个点的判断不太准确,这里有两个例子:
1、haslayout渲染与不渲染时,onload的区别
2、expression、onload、window.attachEvent的执行次序

所以,如果要将图片缩放到75*100,可以这样,思路是先加载,再处理:
img {max-width:75px;max-height:100px;_zoom:expression(function(x){var w=x.width||x.offsetWidth,h=x.height||x.offsetHeight);if(w>75&&75*h/w<=100)x.style.width=75;if(h>100&&100*w/h<=75)x.style.height=100;if(x.style.width!=''||x.style.height!='')x.style.zoom=1}(this))}

但事实上这样的效率也不怎么样,要给所有img赋style.width/height并判断,最后才取消expression;
==2009.4.4补充==============
用expression处理图片不稳定,img onload与否不好判断,还是不建议这么用。
============================
另一种流行的解决方法是用脚本,思路是先处理,再加载(查看示例

在允许使用expression的前提下,适度使用还是可以的,退一步说,IE6早晚都消亡,应该给IE6的用户培养这样一种感觉:“IE6效果不好、速度慢,升升级是不是好点……”囧~

标签:

2009年3月26日 星期四

八卦:google也许要在3月30日推出新产品?

来源:http://www.neo-biz.com/?p=235

有人说google马上要发布的产品是p2p方面的,想想还真有可能,这有篇相关文章:http://www.bitscn.com/pdb/java/200605/21556.html
而且之前google也谴责isp限制p2p是非法的,哈哈

不过为什么是30日,不是我们想当然的4.1呢?不过希望不是八卦,不管是p2p还是gdrive,都不错,强烈期待中……

标签:

2009年3月10日 星期二

CSS实现限制行内字符的最大长度且超长能加省略号

网友“14px”提供了一个思路,很妙,以前只想到用换行、限高截断字符以避免出现半个字,但没想到用背景出省略号,呵呵,赞一个

但原帖的方式太复杂,恐怕不够实用,并且由于firefox尚未支持word-wrap和wrod-break,所以类似这种字符(“借某人名字nangongruiyangsdf打”)在firefox中会整体换行,显示结果就是字符和省略号之间出现空白-_-

不管怎样,把以前的一个例子改造一下:http://www.moonless.net/demo/20
但这样加省略号的缺陷还是很明显的:对非宋体无能为力,中英文混排效果也不理想,权当研究,也许以后有更好的方法。

标签:

word-wrap跳票到firefox3.5了……

https://developer.mozilla.org/En/CSS/Word-wrap
同时在thunderbird中获得支持。
其实word-wrap已经成为css3的属性,并且受text-wrap的影响。

标签:

2009年2月17日 星期二

IE6/7 hasLayout导致cursor有时变为text或失效的bug

先看例子:http://www.moonless.net/demo/15

可以看到:
例一中空白区域鼠标指针变成了文本状(cursor:text);
例二中本应来欲指定元素中鼠标样式为手形(cursor:pointer),但却没起作用;

觉得这应该是个bug,是触发了元素的hasLayout造成的,怎么修复不太清楚,但以下方法可避免:
1、尽量不要触发hasLayout
2、指定非transparent的background
3、让它float
4、让它包含在一个float的元素里(即使不是直接包含)

标签:

2009年2月4日 星期三

对img行间对齐以及vertical-align:middle的探讨

对于vertical-align:middle,w3的解释很简单:
Align the vertical midpoint of the box with the baseline of the parent box plus half the x-height of the parent.

这个x-height的定义是:
The x-height is so called because it is often equal to the height of the lowercase "x". However, an 'ex' is defined even for fonts that don't contain an "x".

单位“ex”的定义是:the 'x-height' of the relevant font,按理说如果选定了字体,x-height应该比em和px更靠谱,但操作系统、浏览器、字体版本等等各种各样的因素导致我们无法信任以字体为出发点的表现处理;

所以middle实际上应该是对齐到基线上方1/4倍ex的位置,但浏览器的处理各不相同,尤其是中英文混排的时候,虽然有人提出如下方案进行补足(如果认为1ex=0.5em,那应是0.25em,但考虑到中文的情况,修改为0.2em):
img {vertical-align:middle;margin-bottom:0.2em}

但烦人的是随着系统环境的不断升级,如果你的用户很巨量,你要面对的新旧版本差异范围会越来越大,兼容or不兼容,这是个问题……

鉴于所有市面上的操作系统和浏览器都是中文苦手的,中英文混排时对line-height、baseline、x-height计算的混乱不是它们的错,更不是我们的错,而宋体5.0的出现和IE8的“文本模式”提醒我们:不能再跟这些属性较劲,一切交给浏览器去处理吧(把出错的原因都推给浏览器吧……@_@)

标签: