Javascript获取某个DOM节点/对象的最终颜色、背景色、字符大小等样式值

前言: 一个Dom节点的最终样式取决于应用在其上的具有最高优先级(greatest weight)的样式定义。我们知道级联样式有多重优先级 (参考W3官方定义,第6.4节),比如: 内联Inline>ID>Class>Tag   正文: 请看代码: http://jsfiddle.net/lanshunfang/dyMxM/ 小方的jsfiddle里的这段代码清楚的显示出,通过调用 window.getComputedStyle 我们可以得出应用在某个具体元素上的最终CSS样式值。 window.getComputedStyle 在IE上变体为: node.currentStyle 请小心其使用方法 (示例)     参考: http://www.w3.org/TR/CSS21/cascade.html http://www.quirksmode.org/dom/getstyles.html http://stackoverflow.com/questions/9430659/how-to-get-all-the-applied-styles-of-an-element-by-just-giving-its-id http://stackoverflow.com/questions/2952667/find-all-css-rules-that-apply-to-an-element

把Javascript当Windows Bat/VBscript使用

Javaqscript只能用在网络?呵呵,out了。 JS文件在Windows操作系统中是可以被宿主解析的。小方在开发守望教会内部专用的 Fan 墙方案“守望无墙计划”中,就使用到了网上找来的这一段JS代码来创建开机启动快捷方式。 参考:http://my520530.iteye.com/blog/1546468 文件名:创建快捷方式.js 编码:ANSI 内容: var fso = new ActiveXObject(“Scripting.FileSystemObject”); var shell = new ActiveXObject(“WScript.Shell”); var sUrl = shell.CurrentDirectory + ‘/myentunnel.exe’; var…

2012前端工程师的方向

攻城师们,如果大家不忙,可以考虑多学点东西。以下是我发给我的队友们的信息,有所编辑: 由于PhoneGap已经被Adobe收购,所以将来它可能不再免费开源,为此,美国硅谷的同事说,美国人已经放弃了PhoneGap。所以大家如果要入门移动开发,PhoneGap可能不再是一个好方向。但我建议大家尽量掌握至少一门移动开发技能,免得将来前端不再那么热门时,我们会失去优势。而且如果我们掌握了一门移动开发,对我们的终合评价也是会相得益彰的。所以大家可以考虑一下IOS或者Android的开发。 我个人在分析后,打算从事Android。此外,同样为前端的领域,大家也可以看看除了jQuery外的其他框架,比如Dojo、Ext,还有另外一个方向,就是Chrome/Firefox插件的开发,特别是chrome插件,因为chrome已经有OS(操作系统),而且Google前景可畏,所以大家可以考虑花时间在研究chrome插件开发上。同理,一个会chrome开发的前端工程师,其综合实力评价会高一个档次。 仅供借鉴。

小方改进版之阀函数

概念: 阀函数是用来在指定的时间内, 只允许执行一次某函数,并且每次执行某函数时,其要确保其执行参数都是用户最后输入的。 例子: 举个例子: 裁判规定,甲1小时最多只能打乙一次,甲必须确保最新的请求得到执行。 那天,老板在清晨7点1分时让甲打乙左脸,又在清晨7点15分时让甲踢乙屁股; 甲的妻子在清晨7点半时叫甲打乙的下巴; 甲的兄弟在清晨9点时叫甲打乙的肚子。 根据规则,甲做出了如此决定: 1. 立即响应老板的第一次请求,在7点1分时打了乙的左脸(第一次打乙) 2. 一个小时后,在8点1分时,打了乙的下巴(妻子请求,放弃了老板的第二次请求,因为妻子的请求是最新的,而甲必须确保最新的请求得到执行) 3. 又一个小时后,在9点1分时,打了乙的肚子(兄弟请求)   用Javascript如何做到呢? 1. 定义间隔执行其他函数的库函数 var excuteEscape = function(fn,fnArgument,gap){ var…

最新GFW关键字过滤: 链接已重置 (包括HTTPS)攻防秘笈

前言: 链接已重置问题已经是邪恶集权网络监督GFW 的常用方法. 之前我们知道使用HTTPS链接可以有效防止这种情况. 原理是HTTPS链接的关键字经过加密产生密文是无法有效过滤的. 可是, 笔者发现当局最近使用了更可怕的招数: 针对CSS/JS/Image等外部文件, 使用全文密文匹配进行重置链接.   攻防秘笈: 我们教会的Wordpress常年被GFW进行各种屏蔽. 原先, 要解除屏蔽, 只需要修改IP和HTTPS即可. 可是最近发现不行了. 经过检查, 发现是一个CSS文件无论如何都被 链接重置. 于是大胆推测这个疯狂的政党已经使用HTTPS密文全文匹配. 所以尝试删除那个CSS文件的文本内容, 发现Load 就成功了. 所以证明了推测的正确. 于是,…

Javascript 工厂设计模式及继承与封装

学习了一些设计模式,写了个优化版的工厂模式,顺便把私有属性,自有的公共属性,可继承的公共属性都写在例子里了。 参考: http://www.cnblogs.com/Darren_code/archive/2011/08/31/JavascripDesignPatterns.html  http://blog.csdn.net/benbon/article/details/1871720 var Father = function() { this.age = 50; this.fatherName = ‘Peter’; this.sayYes = function() { // reuse function alert(‘yes’); }; var…

动态加载Javascript脚本无法调试错误的问题

小方原创哦——至少我目前没有在网上搜索到这样的思想: 如果你使用ajax来动态加载远程脚本,你会遇到痛苦的问题:一旦新远程的js文件内部有语法错误,你将找不到是出错在哪个js文件的哪一行。 所以你可能想到了使用script标签动态创建的方法来解决。然后非常遗憾,IE 9 以下的IE家庭并不支持 script 的 onerror 属性,而且在onreadystatechange事件中,并没有status == 200 或者  status == 404的状态值。也就是,你没有办法在加载出错时做异常处理。 但是还好,我们一般开发都在firefox下基本firebug开发,而精确显示js语法错误也只在开发时有用。所以呢: 1. 为IE 9以下的所有IE家庭浏览器使用XHR (XmlHttpRequest)来加载远程脚本 2. 为其他浏览器使用动态创建 script 标签的方法来提供精确调试。 以下是脚本:…