JavaScript本地存储(DOM Storage,Local Storage)

左右,实用性大大提高。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

JavaScript类和继承:constructor属性

  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.constru
http://www.w3dev.cn/article/20110807/javascript-class-inherit-constructor.aspx

浏览器内核js阻塞页面加载

学朋友搞不清楚,既然说JavaScript是单线程运行的,那么XMLHttpRequest在连接后是否真的异步?其实请求确实是异步的,不过这请求是由浏览器新开一个线程请求(参见上图),当请求的状态变更时,如果先前已设置回调,这异步线程就产生状态变更事件放到 JavaScript引擎的处理队列中等待处理,当任务被处理时,JavaScript引擎始终是单线程运行回调函数,具体点即还是单线程运行 onreadystatechange所设置的函数.参考资料:http://fed.renren.com/2010/01/247http://www.phpv.net/html/1700.html来源:ht
http://www.w3dev.cn/article/20110806/brower-Kernel.aspx

JavaScript代码,变量,函数执行顺序问题

用  看上去,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

javascript执行顺序与作用域

自己试试看吧。 总之,再重复一遍之前的结论:不要在变量未定义之前使用它。 最后介绍一个我也搞不明白的问题: 在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代码的执行顺序是比较复杂的,所以在深入JavaScript语言之前也有必要对其进行剖析。1.6.1 按HTML文档流顺序执行JavaScript代码  首先,读者应该清楚,HTML文档在浏览器中的解析过程是这样的:浏览器是按着文档流从上到下逐步解析页面结构和信息的。JavaScript代码作为嵌入的脚本应该也算做HTML文档的组成部分,所以JavaScript代码在
http://www.w3dev.cn/article/20110805/JavaScript-function-Variable-Precompiled-order.aspx

客户端VBScript和JavaScript相互调用的问题

法,对这种需求真的很无语。。。。  由于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

javascript获取file控件全路径

过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

JS/Exploit-DialogArg.gen特洛伊木马程序

  搞幽啊,showModalDialog {url:} 放在script标签之间竟然变成了JS/Exploit-DialogArg.gen特洛伊木马程序,被麦咖啡给杀掉了,O(∩_∩)O哈哈~  如果你的电脑安装有麦咖啡,只要将下面的内容保存在文本类型的文件里面,如.txt,.aspx..jsp等等里面,就会被识别为JS/Exploit-DialogArg.gen特洛伊木马程序,然后杀掉,script标签之间的js代码全部被删除。script type="text/javascript" showModalDialog {url:}/script
http://www.w3dev.cn/article/20110526/JS-Exploit-DialogArg-gen-mcafee.aspx

直接修改fckeditorcode_gecko.js,fckeditorcode_ie.js文件扩展fckeditor自定义工具栏按钮

  由于要插入客户广告,所以需要扩展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

Javascript获取生肖属相和星座

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,23
http://www.w3dev.cn/article/20110107/javascript-shengxiaoshuxiang-xingzuo.aspx

javascript中instanceof和类

  在javascript里,每个function都有一个prototype属性,这个属性的用途是实现继承机制。必如下面定义的+展开-JavaScriptfunction class1:function class1(){} class1.prototype={a:10,b:100};则class1的每个实例都会从prototype继承a和b这两个属性。  同时,每个对象都会有一个内部的属性_proto_(不同的javascript虚拟机实现用的名字可能不同),这个属性对js开发人员不可见,只在虚拟机内部使用。每当创建一个对象的时候,这个对象的_proto_就会被赋值为这个对象的构造函数的p
http://www.w3dev.cn/article/20101013/2900.aspx

你可能不知道 10个JavaScript小技巧 作者 梦想

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

Google Map开发系列(四)——使用JavaScript创建地图步骤详解

在任何可用的网络环境下都能快速加载并且正确显示,建议定义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获取CSS值 javascript获取级联样式中定义样式值IE:element.currentStylecurrentStyle 对象返回了元素上的样式表,但是 style 对象只返回通过 style 标签属性应用到元素的内嵌样式。因此,通过 currentStyle 对象获取的样式值可能与通过 style 对象获取的样式值不同。例如,如果段落的 color 属性值通过链接或嵌入样式表设置为红色( red ),而不是内嵌的话,对象.currentStyle.color 将返回正确的颜色,而对象 style.color 不能返回值。但是,如果用户指定了 P STYL
http://www.w3dev.cn/article/20100909/javascript-get-value-from-css-stylesheet.aspx

JavaScript获取样式定义的一些小结

"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

数字导航图片查看效果JS使用说明

查看效果,自动播放,数字切换导航"/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

uncaught exception: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIDOMHTMLFormElement.submit]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: :: anonymous :: line 11" data: no]

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"i
http://www.w3dev.cn/article/20100817/Firefox-form-submit-by-javascript-error.aspx

JavaScript汉字Unicode编码相互转换

关键字: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'));}};测试代码+展开 -HTMLhtml
http://www.w3dev.cn/article/20100805/2773.aspx

IE FireFox safari下javascript操作embed播放

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

Javascript在IE和FireFox中的不同表现

;而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);}/scr
http://www.w3dev.cn/article/20100707/2682.aspx

javascript获取查询参数键值对

  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];//添加项进入hash
http://www.w3dev.cn/article/20100706/2681.aspx

eval JavaScript代码块后变量作用域问题

  使用eval动态解析string类型的javascript代码时,如果使用了var声明某个变量,则此变量的作用域是根据eval代码块的位置来确定的。  1)在函数体中执行eval时,则var声明的变量作用域在函数体内,超出函数体外无法访问,否则提示未定义错误。此时要在函数体外访问此变量,则string类型代码块需要去掉var关键字,或者用window.变量名的方式来申明变量,使变量变为全局变量,这样在函数体外才能访问。  2)不在函数体中执行eval时,则不论是否使用var关键字来申明变量,此变量的作用域是全局的。  例子如下  1、函数体内执行eval,使用var申明+展开-JavaSc
http://www.w3dev.cn/article/20100705/2670.aspx