代码改变世界

随笔分类 -  JavaScript

深入理解什么是javascript中的闭包(转载)

2011-08-29 22:29 by 爱研究源码的javaer, 560 阅读, 收藏,
摘要: 深入理解什么是javascript中的闭包。闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。Js代码 var n=999; function f1(){ alert(n); } f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。Js代码 function f1(){ var n=999; } a... 阅读全文

ppk谈JavaScript style属性

2011-07-14 14:25 by 爱研究源码的javaer, 483 阅读, 收藏,
摘要: 事实上,7个范例脚本都用到了某种形式的CSS修改。比如,“表单验证”改变出错的表单域的样式,“XMLHTTP速度测试计”使用动画(其实也就是在很短的时间内多次改变某个样式)来让用户注意到速度的数据(而且,老实讲这算是有些花哨的效果)。“下拉菜单”通过改变样式来显示和隐藏菜单项。这些变化都拥有同样的目的:把用户的注意力吸引到这些元素上。JavaScript有如下4种修改CSS的方式:l 修改元素的style属性(element.style.margin='10%');l 改变元素的class或id(element.className='error'),浏览器将自动 阅读全文

获取iframe内容IE下的延时 (转载)

2011-06-23 13:59 by 爱研究源码的javaer, 368 阅读, 收藏,
摘要: function iframeOnload(id,func){function isIe(){ return navigator.appName == 'Netscape' ? false : true;}function getDocument(id){ var iframe = document.getElementById(id); switch(isIe()) { case false: //ff var a = iframe.contentDocument; return a; case true: //ie var a = iframe.contentWindow. 阅读全文

location.search

2011-06-23 09:40 by 爱研究源码的javaer, 380 阅读, 收藏,
摘要: 设置或获取 网页地址跟在问号后面的部分当以get方式在url中传递了请求参数时,可以利用location的search属性提取参数的值,下面的代码把参数的名称和对应的值存储在2个数组中。<script>function test(){var url=window.location.search;if(url.indexOf("?")!=-1) { var str = url.substr(1) strs = str.split("&"); var key=new Array(strs.length); var value=new Ar 阅读全文

重温Javascript继承机制(转)

2011-06-17 22:14 by 爱研究源码的javaer, 387 阅读, 收藏,
摘要: 段时间,团队内部有过好几次几次给力的分享,这里对西风师傅分享的继承机制稍作整理一下,适当加了写口语化的描述,留作备案。一、讲个故事吧澄清在先,Java 和Javascript是雷锋和雷峰塔的关系。Javascript原名Mocha,当时还叫做LiveScript,创造者是Brendan Eich,现任Mozilla公司首席技术官。1994年,历史上第一个比较成熟的网络浏览器——Navigator0.9版诞生在网景公司(Netscape),极为轰动。 但是,Navigator0.9只能用来浏览,不具备与访问者交互的能力,比如,用户提交一个数据表单,如果表单为空,浏览器是无法判断的,只能直接提交给 阅读全文

js获取窗口可见宽度高度(转载)

2011-05-12 15:54 by 爱研究源码的javaer, 1314 阅读, 收藏,
摘要: 关于获取各种浏览器可见窗口大小的一点点研究。 在我本地测试当中: 在IE、FireFox、Opera下都可以使用 document.body.clientWidth document.body.clientHeight 即可获得,很简单,很方便。 而在公司项目当中: Opera仍然使用 document.body.clientWidth document.body.clientHeight 可是IE和FireFox则使用 document.documentElement.clientWidth document.documentElement.clientHeight 原来是W3C的标准在作怪 阅读全文

flash不挡住飘浮层或下拉菜单(转载)

2011-05-11 15:59 by 爱研究源码的javaer, 430 阅读, 收藏,
摘要: 让flash置于DIV层之下的方法,让flash不挡住飘浮层或下拉菜单让Flash不档住浮动对象或层的关键参数:wmode=opaque方法:针对IE 在<object></object>内加上参数<param name="wmode" value="opaque" />针对FF 在<embed />内加上参数wmode="opaque"测试时可以遮住Flash了,但正式使用时又不行了,对比下正式代码与测试代码,发现测试代码中层中多了底色属性,在正式代码中加了透明底色后一切OKbackg 阅读全文

正则表达式验证代码(字母、数字、Email、网址、电话号码、汉字、身份证号码) (转载)

2011-05-10 11:35 by 爱研究源码的javaer, 942 阅读, 收藏,
摘要: % if request("check")<>"" thenastr=request("content")call str(astr)end iffunction str(astr)Ar=Cint(Asc(astr))if(65<=Ar and Ar<=90) or (97<=Ar and Ar<=122) thenresponse.Write "<script>alert('输入的字符串是英文字母!!');</script>"elsere 阅读全文

javascript获取a链接中的href 并分解(转载)

2011-04-13 10:47 by 爱研究源码的javaer, 1023 阅读, 收藏,
摘要: function get() { // 搜索所有 a 标签,并保持在 _el 中 var el = [], _el = document.getElementsByTagName('a'); /* * 如果你要找的a标签中有id="",如<a id="ku" href=""></a> * 那么以上两行可以改为 * var el = [], * _el = document.getElementsById('ku'); */ //遍历_el,获得含有 class=="no 阅读全文

javascript通过classname获取子元素

2011-04-13 10:36 by 爱研究源码的javaer, 1218 阅读, 收藏,
摘要: function getElementsByClassName(objparent,classna) { 3 var classElements = [],allElements = objparent.getElementsByTagName("div"); 4 for (var i=0; i< allElements.length; i++ ) 5 { 6 if (allElements[i].className == classna ) { 7 classElements[classElements.length] = allElements[i]; 8 } 9 阅读全文

Javascript 获取链接(url)参数的方法[正则与截取字符串](转载)

2011-04-13 10:30 by 爱研究源码的javaer, 664 阅读, 收藏,
摘要: 分解链接的方式: 复制代码 代码如下:<script type="text/javascript"> <!-- // 说明:Javascript 获取链接(url)参数的方法 function getQueryString(name) { // 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空 if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1) { return ''; } // 获取链接中参数部 阅读全文

js动态添加options(转载)

2011-03-19 13:52 by 爱研究源码的javaer, 2332 阅读, 收藏,
摘要: JS动态添加Option的几种方式 在处理表单的时候,经常会有这样的需求:给定一定的数据来生成某个select的option,或者更进一步,某些option或许预先选中或者有高亮显示。 下面我们就来温习一下几种option的创建方式。这个需求要求某些选项要预先有高亮显示,可以通过添加class来处理。首先定义一个高亮的class,为了简单处理,只定义红色高亮:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><style type=&qu 阅读全文

XSLT学习(转载)

2011-02-07 17:32 by 爱研究源码的javaer, 365 阅读, 收藏,
摘要: 不太会进行理论的介绍,就拿例子来进行初步的介绍吧!呵呵,望大家见谅!欢迎大家给提意见!先看一段XML文档 XMLCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--?xmlversion="1.0"encoding="utf-8"?AuthorsAuthorAuthorNameid="1"Author1/AuthorNameAuthorAddressAddress1/AuthorAddressAuthorEmailEMa 阅读全文

JavaScript常用方法(转载)

2011-01-18 11:17 by 爱研究源码的javaer, 471 阅读, 收藏,
摘要: 只能是写限定的东西 代码如下:  只能是中文inputonkeyup="value=value.replace(/[ -~]/g,'')"onkeydown="if(event.keyCode==13)event.keyCode=9"  只能是英文和数字.屏蔽了输入法inputstyle="ime-mode:disabled"onkeydown="if(event.keyCode==13)event.keyCode=9"  只能输入英文和数字inputonkeyup="value=value.replace(/[\W]/g,'')"onbeforepaste="clipboardDa 阅读全文

IE6/7/8用Js实现圆角(转载)

2011-01-13 11:20 by 爱研究源码的javaer, 421 阅读, 收藏,
摘要: var css = document.creatStyleSheet();css.addRule("v:\\roundrect","behavior:url(#default#vml);display:inline-block;");var rect = document.creatElement("v:roundrect");setAttribute(rect,{arcsize:"20px",stroked:false});rect.css({ width:"20px",height:"20px",antialias:true})原文链接:http://news.cnblogs.com/n/ 阅读全文

四种浏览器document.body 的 clientHeight、offsetHeight 和 scrollHeight 的解释(转载)

2011-01-11 10:48 by 爱研究源码的javaer, 1252 阅读, 收藏,
摘要: 1.四种浏览器对 document.body 的 clientHeight、offsetHeight 和 scrollHeight 的解释。这四种浏览器分别为IE(Internet Explorer)、NS(Netscape)、Opera、FF(FireFox)。clientHeight大家对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。offsetHeightIE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 阅读全文

EXT性能优化(转载)

2010-12-30 09:34 by 爱研究源码的javaer, 513 阅读, 收藏,
摘要: EXT性能优化 1. 将JS进行合并压缩。 使用yahoo的yui-compress.jar进行压缩JS,去掉过多的空格和注释,并合并,减少IO的支出。 2. 将前后台传输的数据进行GZIP压缩。 大数据量的数据传输,通过GZIP的压缩方案,可以减少到25%,有些数据可能会更多。 3. 对大量的JS分析依赖关系,进行动态加载。 这个是关键,通过分析所有的JS中的依赖关系,减少了JS加载的数量。从很大程度上提高了性能。 4. 另外对部分页面进行缓存,而非真正的关闭。 对于Ext的消毁不能完全释放节点,那我们就不消毁他,进行对象的缓存,并在重新打开该功能的时候进行数据的重新加载 阅读全文

js动态获取虚拟目录名称 相当于服务端ResolveUrl("")方法(转载)

2010-12-14 13:27 by 爱研究源码的javaer, 833 阅读, 收藏,
摘要: function_GetScriptLocation(){ varscriptLocation=""; varscriptName="Utility.js"; varscripts=document.getElementsByTagName('script'); for(vari=0;iscripts.length;i++){ varsrc=scripts[i].getAttribute('src'); if(src){ varindex=src.lastIndexOf(scriptName); //isitfound,attheendoftheURL? if((index-1)&&(in 阅读全文

window.onload与DOM树 (转载)

2010-12-02 22:20 by 爱研究源码的javaer, 583 阅读, 收藏,
摘要: window.onload与DOM树 先看一下问题:[代码] 其中createDom()通过异步请求取得大量数据,然后组织起来;operateDom()是通过遍历操作createDom生成的节点。问题出现了:页面显示的并不是我们想要的效果。为什么?operateDom并不能总是取到生成的dom节点。由于生成的dom节点附加到页面dom树的时候存在着延迟,所以在createDom里面数据量比较大、... 阅读全文

js Dom学习(转载)

2010-12-02 21:40 by 爱研究源码的javaer, 1455 阅读, 收藏,
摘要: 最近发现DOMDocument对象很重要,还有XMLHTTP也很重要注意大小写一定不能弄错.属性:1Attributes 存储节点的属性列表(只读)2childNodes 存储节点的子节点列表(只读)3dataType 返回此节点的数据类型4Definition 以DTD或XML模式给出的节点的定义(只读)5Doctype 指定文档类型节点(只读)6documentElement 返回文档的根元素... 阅读全文