Web开发网 > 站内搜索 > JavaScript 闭包
左右,实用性大大提高。2. 能够真正的持久化到本地。cookies并没有提供永久持久化到本地的方法,它总是会过期,而DOM Storage则没有这个问题。3. 效率更高。cookies是需要发回服务器端的,而DOM Storage则不会。4. 接口更加标准,使用更加简单。相信cookie在javascript 中的操作有多麻烦大家都是非常清楚的,而DOM Storage则需跟json一样操作即可。 当然它同样也有一些缺点,比如安全和隐私方面可能控制的不是那么好,它的存储是明文的并未经过加密,可以比较容易的获取存储的信息。 无论如何,DOM Storage所具有的特性都是让人十分振奋的。但是(http://www.w3dev.cn/article/20110807/javascript-DOM-Storage-Local-Storage.aspx
constructor属性始终指向创建当前对象的构造函数。比如下面例子: +展开-JavaScript //等价于varfoo=newArray(1,56,34,12);vararr=[1,56,34,12];console.log(arr.constructor===Array);//true//等价于varfoo=newFunction();varFoo=function(){};console.log(Foo.constructor===Function);//true//由构造函数实例化一个obj对象varobj=newFoo();console.log(obj.construhttp://www.w3dev.cn/article/20110807/javascript-class-inherit-constructor.aspx
学朋友搞不清楚,既然说JavaScript是单线程运行的,那么XMLHttpRequest在连接后是否真的异步?其实请求确实是异步的,不过这请求是由浏览器新开一个线程请求(参见上图),当请求的状态变更时,如果先前已设置回调,这异步线程就产生状态变更事件放到 JavaScript 引擎的处理队列中等待处理,当任务被处理时,JavaScript 引擎始终是单线程运行回调函数,具体点即还是单线程运行 onreadystatechange所设置的函数.参考资料:http://fed.renren.com/2010/01/247http://www.phpv.net/html/1700.html来源:hthttp://www.w3dev.cn/article/20110806/brower-Kernel.aspx
http://www.w3dev.cn/article/20110806/javascript-variable-scope-chain.aspx
用 看上去,fn2()和延时程序是分两个过程再走,但其实,这是JavaScript 中的回调机制在起作用,类似于操作系统中的中断和响应 延时程序设置一个中断,然后执行fn2(),待1000毫秒时间到后,再回调执行fn1()。 同样,5中body的onload事件调用的函数,也是利用了回调机制body加载完成之后,回调执行fnOnLoad()函数。 Ajax请求中的数据处理函数也是一样的道理。 关于JavaScript 线程问题的更深入讨论,看这篇 javascript 中的线程之我见,以及infoQ上的 JavaScript 多线程编程简介。困了,再说一下回调函数吧。7. 回调函数 回调http://www.w3dev.cn/article/20110805/javascript-execution-sequence.aspx
自己试试看吧。 总之,再重复一遍之前的结论:不要在变量未定义之前使用它。 最后介绍一个我也搞不明白的问题: 在HTML文档里写上这段代码: +展开-HTMLscripttype="text/javascript "window['a']='Hi';/scriptscripttype="text/javascript "src="out.js"/scriptscripttype="text/javascript "alert(a);/script 然后在out.js里写上这句: +展开-JavaScriptif(false){vara='Hello';} 然后用FF和IE6分别运行,看看你得到什么。http://www.w3dev.cn/article/20110805/javascript-var-execute-order-scope.aspx
来说明JavaScript 代码在页面中的执行顺序。如果说,JavaScript 引擎的工作机制比较深奥是因为它属于底层行为,那么JavaScript 代码执行顺序就比较形象了,因为我们可以直观感觉到这种执行顺序,当然JavaScript 代码的执行顺序是比较复杂的,所以在深入JavaScript 语言之前也有必要对其进行剖析。1.6.1 按HTML文档流顺序执行JavaScript 代码 首先,读者应该清楚,HTML文档在浏览器中的解析过程是这样的:浏览器是按着文档流从上到下逐步解析页面结构和信息的。JavaScript 代码作为嵌入的脚本应该也算做HTML文档的组成部分,所以JavaScript 代码在http://www.w3dev.cn/article/20110805/JavaScript-function-Variable-Precompiled-order.aspx
http://www.w3dev.cn/article/20110714/javascript-document-write.aspx
法,对这种需求真的很无语。。。。 由于ajaxpro在客户端注册的脚本是JavaScript 的,但是JavaScript 无法调用VBScript注册的函数或者过程,只能访问VBScript注册的变量,VBScript可以调用JavaScript 注册的变量或者方法,所以VBScript使用ajaxpro的异步功能时,需要传递回调函数,如果传递的是VBScript的function函数,会出错“由于出现错误 80020102 而导致此项操作无法完成”的错误。 要解决这个问题,可以在VBScript传递JavaScript 的回调函数,而不是VBScript的回调函数。反正变量是可以相互访问的,这http://www.w3dev.cn/article/20110630/VBScript-JavaScript-function-call.aspx
过obj.value是可以获取客户端选择文件的全路径的,但是到ie7就只能获取文件名,这对于onchange事件立即显示图片会有问题,可以用js方法解决具体代码如下:+展开-HTMLhtmlheadtitlegetfileinputfullpathtitlescriptlanguage='javascript 'functiongetFullPath(obj){if(obj){//ieif(window.navigator.userAgent.indexOf("MSIE")=1){obj.select();returndocument.selection.createRange().text;}http://www.w3dev.cn/article/20110620/javascript-file-full-path.aspx
搞幽啊,showModalDialog {url:} 放在script标签之间竟然变成了JS/Exploit-DialogArg.gen特洛伊木马程序,被麦咖啡给杀掉了,O(∩_∩)O哈哈~ 如果你的电脑安装有麦咖啡,只要将下面的内容保存在文本类型的文件里面,如.txt,.aspx..jsp等等里面,就会被识别为JS/Exploit-DialogArg.gen特洛伊木马程序,然后杀掉,script标签之间的js代码全部被删除。script type="text/javascript " showModalDialog {url:}/scripthttp://www.w3dev.cn/article/20110526/JS-Exploit-DialogArg-gen-mcafee.aspx
http://www.w3dev.cn/article/20110406/vbs-file-forbid-update.aspx
http://www.w3dev.cn/article/20110325/IE-display-javascript-error.aspx
由于要插入客户广告,所以需要扩展fckeditor的自定义功能,具体原理可以参考这篇文章。扩展Fckeditor工具条--添加自定义功能按钮。不过修改的是源代码,然后再重新打包压缩。我是懒得再打包 了,而且文章里面也没打包成功。 所以干脆直接修改打包压缩过的js文件fckeditorcode_gecko.js【非IE浏览器,如果不需要兼容非IE浏览器就不需要修改这个文件了】,fckeditorcode_ie.js【For IE】算了,原理也是差不多的,只是fckeditorcode_gecko.js,fckeditorcode_ie.js代码压缩过,看起来比较吃力,不过知道原理以后,添加http://www.w3dev.cn/article/20110128/update-fckeditor-fckeditorcode-gecko-file-add-selfdefine-toolbutton.aspx
http://www.w3dev.cn/article/20110126/fckeditor-config-params-introduce.aspx
Javascript 获取生肖属相和星座源代码如下+展开-HTMLhtmlheadscriptlanguage="javaScript "functionf_GetAnimal(ld_year){varla_Animals=newArray("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪");returnla_Animals[(ld_year-4)%12];}functionf_GetAstro(ld_month,ld_day){vars="魔羯水瓶双鱼牧羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯",arr=[20,19,21,21,21,22,23,23http://www.w3dev.cn/article/20110107/javascript-shengxiaoshuxiang-xingzuo.aspx
http://www.w3dev.cn/article/20101216/freemarker-javascript-template-EasyTemplate.aspx
在javascript 里,每个function都有一个prototype属性,这个属性的用途是实现继承机制。必如下面定义的+展开-JavaScriptfunction class1:function class1(){} class1.prototype={a:10,b:100};则class1的每个实例都会从prototype继承a和b这两个属性。 同时,每个对象都会有一个内部的属性_proto_(不同的javascript 虚拟机实现用的名字可能不同),这个属性对js开发人员不可见,只在虚拟机内部使用。每当创建一个对象的时候,这个对象的_proto_就会被赋值为这个对象的构造函数的phttp://www.w3dev.cn/article/20101013/2900.aspx
http://www.w3dev.cn/article/20100924/2876.aspx
undingthenumber,returns"3.142" 4.Javascript 版本检测 你知道你的浏览器支持哪一个版本的Javascript 吗?如果不知道的话,去维基百科查一下Javascript 版本表吧。出于某种原因,Javascript 1.7版本的某些特性是没有得到广泛的支持。不过大部分浏览器都支持了1.8版和1.8.1版的特性。(注:所有的IE浏览器(IE8或者更老的版本)只支持1.5版的Javascript )这里有一个脚本,既能通过检测特征来检测JavaScript 版本,它还能检查特定的Javascript 版本所支持的特性。+展开-JavaScriptvarJS_ver=http://www.w3dev.cn/article/20100922/2873.aspx
在任何可用的网络环境下都能快速加载并且正确显示,建议定义body元素的onload方法,在onload方法中开始你的JS动作。同时,把读入地图API的script标签放在head元素中,而把你自己的JavaScript 代码块放到body标签的后面去定义。如果对浏览器的加载顺序比较熟悉的话,你就不必遵守我说的规则了,自由定义你认为应该的JavaScript 声明顺序。 6、为了避免JavaScript 中引用页面的DOM元素可能存在的内存泄漏(尤其是在“伟大的”IE浏览器中),你需要使用地图API中定义的GUnload()方法作为你的body元素的onunload方法,并且最好把这个作为一个必须的http://www.w3dev.cn/article/20100917/2856.aspx
关键词:Javascript 获取CSS值 javascript 获取级联样式中定义样式值IE:element.currentStylecurrentStyle 对象返回了元素上的样式表,但是 style 对象只返回通过 style 标签属性应用到元素的内嵌样式。因此,通过 currentStyle 对象获取的样式值可能与通过 style 对象获取的样式值不同。例如,如果段落的 color 属性值通过链接或嵌入样式表设置为红色( red ),而不是内嵌的话,对象.currentStyle.color 将返回正确的颜色,而对象 style.color 不能返回值。但是,如果用户指定了 P STYLhttp://www.w3dev.cn/article/20100909/javascript-get-value-from-css-stylesheet.aspx
"myDiv"img src="pic3.jpg" width="400px" height="400px"//divscript type="text/javascript "window.onload=function(){ var x=document.getElementById("myDiv") if(document.all)alert(x.currentStyle.height)//IE else alert(window.getComputedStyle(x,null).height)}/script/body/html具体可以看Javascript 获取级联样式表中定义的CSS值http://www.w3dev.cn/article/20100909/javascript-update-css-stylesheet-summary.aspx
查看效果,自动播放,数字切换导航"/metaname="Description"content="图片查看效果,自动播放,图片上面显示数字导航,点击数字切换到当前图片。"/scripttype="text/javascript "src="newschr.js"/script/headbodyh1图片查看效果,自动播放,数字切换导航/h1scripttype="text/javascript "varimgFlash=[{u:"//download/20100813/128.aspx",tl:"jqueryeasyui使用说明文档",img:"20100820021327_711.jpg"},{http://www.w3dev.cn/article/20100908/2839.aspx
6%A1%8C%E9%9D%A2/x.html :: anonymous :: line 11" data: no] 在Firefox下面,如果将表单提交到隐藏的iframe中,当不是通过http协议访问页面,而是双击在Firefox中运行,或者直接拖拽进入Firefox中查看效果,当用JavaScript 调用表单的submit方法时就出会先上面的提示错误。点击“提交”按钮也无法提交表单。 通过http协议访问则不会提示此错误。 测试代码如下+展开 -HTMLiframename="upload_target"id="upload_target"style="display:none"ihttp://www.w3dev.cn/article/20100817/Firefox-form-submit-by-javascript-error.aspx
关键字:JavaScript 汉字转换为Unicode编码 Unicode编码转换为汉字 JavaScript 汉字Unicode编码相互转换代码。JavaScript 库+展开 -JavaScriptvarGB2312UnicodeConverter={ToUnicode:function(str){returnescape(str).toLocaleLowerCase().replace(/%u/gi,'\\u');},ToGB2312:function(str){returnunescape(str.replace(/\\u/gi,'%u'));}};测试代码+展开 -HTMLhtmlhttp://www.w3dev.cn/article/20100805/2773.aspx
com/windows/mediaPlayer/"id="player"src="http://pub.qmoon.net:8009/911pop"name="player"width="0"height="0"volume="100"/embed/divscripttype="text/javascript "//暂定vartrnode=document.getElementById("player");trnode.parentNode.removeChild(trnode);//播放varcontainer=document.getElementById("radio_container"http://www.w3dev.cn/article/20100803/2763.aspx
;而IE的body则必须在body标签被浏览器完全读入之后才存在.例如: Firefox: +展开-HTMLbodyscripttype="text/javascript "document.body.onclick=function(evt){evt=evt||window.event;alert(evt);}/script/body IE&Firefox: +展开-HTMLbody/bodyscripttype="text/javascript "document.body.onclick=function(evt){evt=evt||window.event;alert(evt);}/scrhttp://www.w3dev.cn/article/20100707/2682.aspx
javascript 将get提交的查询参数对初始化为hashtable。 注意:下面的代码中键名称只能是数字和字母的组合,如果不是数字和字母注意修改正正则表达式。+展开-JavaScriptvars=location.search;//查询参数字符串varRequest={};//初始化Request对象functionInitRequest(){varm,reg=/([a-z\d]+)=([^&]+)/gi;s=s==''?'':s.substring(1);while(m=reg.exec(s))Request[m[1].toLowerCase()]=m[2];//添加项进入hashhttp://www.w3dev.cn/article/20100706/2681.aspx
使用eval动态解析string类型的javascript 代码时,如果使用了var声明某个变量,则此变量的作用域是根据eval代码块的位置来确定的。 1)在函数体中执行eval时,则var声明的变量作用域在函数体内,超出函数体外无法访问,否则提示未定义错误。此时要在函数体外访问此变量,则string类型代码块需要去掉var关键字,或者用window.变量名的方式来申明变量,使变量变为全局变量,这样在函数体外才能访问。 2)不在函数体中执行eval时,则不论是否使用var关键字来申明变量,此变量的作用域是全局的。 例子如下 1、函数体内执行eval,使用var申明+展开-JavaSchttp://www.w3dev.cn/article/20100705/2670.aspx
首页 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页 尾页 9/13页,每页显示30条,共370条相关记录