Chrome 使用 pac 来自动代理

之所以有此文,是因为忘记在哪个版本起 Chrome 的如 ProxySwitchy 等扩展就有问题了,在代理方面很有问题,没有 Firefox 下的 autoproxy 稳定。在过了一阵子需要翻只能开 FF 的时间后,决定还是看看 Chrome 下该如何解决这个问题。

查看 chromium / google-chrome 的帮助命令,将可以看到和代理(proxy)有关的有:

1
2
3
4
--proxy-server=host:port
--no-proxy-server
--proxy-auto-detect
--proxy-pac-url=URL

可以看到,Chrome 是支持指定 pac 文件来自动代理的。这样,便可以使用 使用 pac 文件来实现自动代理 一文提到的 pac 文件了。

这样,便可以通过类似下面的命令来启动带自动代理功能的 Chrome 了。

1
google-chrome --proxy-pac-url=file:///home/user/autoproxy.pac

对于 Windows 环境,直接把 –prox-pac-url=pac-file-path 参数加到快捷方式属性中的『目标』属性的后面即可。

对于 Ubuntu 环境,Chromium 可以通过把这个参数写进 /etc/chromium-browser/default 文件中的 CHROMIUM_FLAGS 变量;对于 google-chrome,暂时没找到方便写配置的地方,干脆直接写个 sh 文件,把整条命令加进去吧(可在命令后加 & 来达到终端关闭浏览器依然存在的目的)。

使用 pac 文件来实现自动代理

pac(proxy autoconfiguration)文件其实就是一个 JavaScript 文件,文件扩展名是什么其实没有关系,但一般都名为 pac

pac 文件中必须包含 FindProxyForURL(url, host) 的函数,支持 pac 自动代理的浏览器将会根据这个函数来判断当前访问的网址走何种通道。最简单的示例如下

1
2
3
function FindProxyForURL(url, host) {
    return 'DIRECT';
}

上面那段代码说明对于所有 url,都直连,不走任何代理。

FindProxyForURL 函数除了可以返回 “DIRECT” 外,还可以返回指定类型、主机和端口的代理。如:

1
2
3
4
5
// 本地 3721 端口的 http 代理
"PROXY 127.0.0.1:3721"

// 本地 8080 端口的 socks5 代理
"SOCKS5 127.0.0.1:8080"

可以同时指定多个方式,从第一种开始,一种无法连接使用下一种,直到成功或最后失败,如:

1
return "PROXY 127.0.0.1:3721; SOCKS5 127.0.0.1:8080; DIRECT";

继续阅读“使用 pac 文件来实现自动代理”

全国行政区划

一直不知道,行政区的排序是有国家规定的。

是按大区顺序排的,以北京为中心,然后依次是东北-华东-华中-华南-西南-西北-港澳台,在一个大区之内,一般是从东到西,从北到南排列,但直辖市排在最前面。
这个顺序排列有严格的规定,不能随意变动,以前海南省、重庆市、香港特别行政区、澳门特别行政区成立时,还专门发文指定了它们在新行政区划序列中的顺序,再如江西省以前属于华中,后来被调整为华东,其顺序也进行了变动。

现行的政区顺序为:
华北:北京市    天津市   河北省    山西省    内蒙古自治区
东北:辽宁省    吉林省   黑龙江省
华东:上海市    江苏省   浙江省    安徽省    福建省    江西省    山东省
华中:河南省    湖北省    湖南省(华中和华南又合称中南)
华南:广东省    广西壮族自治区    海南省
西南:重庆市    四川省    贵州省    云南省    西藏自治区
西北:陕西省    甘肃省    青海省    宁夏回族自治区    新疆维吾尔自治区
其他:香港特别行政区    澳门特别行政区    台湾省

References:

  1. 中华人民共和国行政区划_人民政府门户网
  2. 全国行政区划序列_百度知道
  3. 中华人民共和国行政区划_维基百科

innerHTML设置样式在IE下的问题

使用 innerHTML 设置内容时,如果内含 style 样式,在 IE7 及以下可能会发现样式没生效。

解决方法:把 <style> 样式放到待设置的 html 内容的最后。

所使用的代码片段是:

1
2
3
var str1 = '<style>#con{color:red;}</style><p>红字</p>',
    str2 = '<p>二:<style>#con{color:green;}</style>绿字</p>',
    str3 = '<p>蓝字</p><style>#con{color:blue;}</style>';

日常之不寻常

在盘古开天劈地后,女娲开始造人。即便贵为女神,但还是偶尔会因为天气不好而心情不好,所以捏出来的人有大有小,能力也有强有弱。

于是,在学园都市里,既有位于顶端的『一方通行』,也有偶尔催开朵花的『恒温器』。

是夜 2012 年 9 月 24 日晚上 9 点(偏差 15 分钟)。

身为『无能力者』的我心血来潮,跟队打名为『总教练』的最终 BOSS,然而在圣骑士首轮不敌后,身为酱油党的我未能破防,连强制性伤害都没到达成就在敌方的『回眸一笑』中倒地,脚踝中了一箭,自此结束冒险者生涯。那一刻,我看见大圣一头撞倒了不周山,观音似笑未笑,佛祖拈指不语,至于哪吒,只看见一缕烟火尤在。

必须提早返回神殿的我告别战友,打着尼龙伞,顶着毛毛雨,于漆黑的路上走着。

掏出手机,有房东来电,回拨一问,我的错,放于包内的手机不小心触发了拨号。连声道歉多谢后挂机转拨家里,说下战伤。

十字路口,在 2012 年 9 月 24 日 9 点 20 分这一刻(偏差 5 分钟),等 Bus 的人和以往一样的多。

在右脚兄声声的“老兄,重伤就不上火线了吧!这一刻咱也是有特供的人,何必和一帮愚民争夺呢?那么一亩三分地就施舍给他们吧!”中,我挥了挥手。啊咧!我再挥挥手,不行,再挥挥。哈,终于来了,特供 TAXI。

的士大叔跟我说,由于今晚下雨,加上周一,坐车的人不多,现在才两三百。又跟我说,当年云溪路君尚未诞生,此线路畅行无阻,岑村房租也才一两百。

到达转盘,的士大叔果然备足炮火,顺利找我 83。哦,为什么多了 2 块?那是因为的士大叔是直行转左而不是原地左转。

回到神殿,房东友情提供一杯药酒和半桶热水。

疗伤之事无聊,不再一一叙述。

因『ACG漫展』由于种种原因而取消,因突然中了一箭,总而言之,『普天同庆』的时候我只能补番了。

P.S. Bob 大叔说在看科幻题材作品时尤有创造力,我似乎在身体有恙时有那么一点发散思维,这该『可喜可贺』吗?

IE9 下 jQuery 报 getElementsByTagName 不支持问题

在 IE9 下使用 jQuery 1.5 或更前的某些版本,可能会碰到类似这样的报错:

1
 "Object doesn't support this property or method..." for code elem.getElementsByTag("*")

debug 将会发现,那个时候 elem 元素会是 DocumentFragMent,而在 IE9 中没对这个元素提供 getElementsByTagName 这个方法。

解决方法则很简单,把 jQuery 的版本升级上去即可。

参考链接