随笔分类 - JavaScript
摘要:让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个js文件。Opera,FireFox等其他非IE浏览器就会忽视这段代码,也不会存在http请求。 方式一:引用google的html5.js文件,代码内容可以自己下载下来看。 将以上代码放到head标签区间 方式二:自己coding JS搞定。 不管你用上面哪中方式,请记得在CSS中进行如下定义,目的是让这些标签成为块状元素,just like div。/*html5*/article,...
阅读全文
摘要:1./* -- 类式继承 -- *///先声明一个超类function Person(name) { this.name = name;}//给这个超类的原型对象上添加方法 getName Person.prototype.getName = function() { return this.name;}//实例化这个超var a = new Person('Darren1')console.log(a.getName());//Darren1 //再声明类function Programmer(name, sex) { //这个类中要调用超类Person的构造函数,并将参数n
阅读全文
摘要:/* -- 封装 -- */var _packaging = function() { //私有属性和方法 var age = "12"; var method1 = function() { //... } //特权属性和方法(1.可以被实例访问 2.不能被类访问 3.可以访问私有属性) this.title = 'JavaScript Design Patterns'; this.getAge = function() { console.log(age); return age; }} //共有静态属性和方法(1.可以被类访问 2.不能被实例访问)_p
阅读全文
摘要:Events = function() { var listen, log, obj, one, remove, trigger, __this; obj = {}; __this = this; listen = function(key, eventfn) { //把简历扔盒子, key就是联系方式. var stack; //stack是盒子 stack = obj[key] != null ? obj[key] : obj[key] = []; return stack.push(eventfn); }; one = function(key, eventf...
阅读全文
摘要:var arr = [3,4,5,6,7,"a"];var isNum = function(elem,index,AAA){ return !isNaN(elem);}var toUpperCase = function(elem){ return String.prototype.toUpperCase.apply(elem);}var print = function(elem,index){ console.log(index+"."+elem);}/*对数组中的每一项执行测试函数,直到获得对指定的函数返回 false 的项。 使用此方法 可确定
阅读全文
摘要:《parctical common lisp》的作者曾说,如果你需要一种模式,那一定是哪里出了问题。他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案。不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些。术士和暗影牧师很容易成为一个出色的辅助,而一个背着梅肯满地图飞的敌法就会略显尴尬。 换到程序中, 静态语言里可能需要花很多功夫来实现装饰者,而js由于能随时往对象上面扔方法,以至于装饰者模式在js里成了鸡肋。讲javascript设计模式的书还比较少. Pro java
阅读全文
摘要:/*一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。*/ var n=999; function f1(){ alert(n); } f1(); // 999//另一方面,在函数外部自然无法读取函数内的局部变量。 function f1(){ var n=999; } alert(n); // error//这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量! ...
阅读全文
摘要://反科里化Function.prototype.uncurrying = function() { var _this = this; return function() { return Function.prototype.call.apply(_this, arguments); //_this.call(arguments); //在下面的例子中Array.prototype.push == _this //因为call 本身也是个函数 //Function.prototype.call.apply 就是去调用call()方法 //也就是Array.prototype....
阅读全文
摘要:/*Apply 方法的妙用*//*1.数组最大值*/console.log(Math.max(19, 2, 25, 16, 78));//78/*如果参数是一个一维数组*/var arr = [19, 2, 25, 16, 78];console.log(Math.max(arr));//NaNconsole.log(Math.max.apply(null, arr));//78/*多维数组可以这么修改:*/var a = [1, 2, 3, [5, 6], [1, 4, 8]];/*转化为一维数组*/var ta = a.join(",").split(",&q
阅读全文
摘要:以下是内容小点:1. 使用funciton作为构造函数构建对象2. 使用json作为构造函数的参数3. 通过eval内置函数动态添加对象属性4. 为对象新增方法5. 使用JSON来创建对象6. 使用Function作为对象创建,并把JSON属性赋予给Function1. 使用function作为构造函数构建对象对于类的创建来说,最常见的方法是提供一个构造函数来获取类的实例。 <script type="text/javascript"> var Person = function(name, age, alias) { this.name = name; thi
阅读全文
摘要:prototype.js代码片段 var Class = { create: function() { return function() { this.initialize.apply(this , arguments); } } } // Class使用方法如下 var A = Class.create(); A. prototype={ initialize:function(v){ this .value=v; } showValue:function(){ alert(this.value); } } var a =...
阅读全文
摘要:<!DOCTYPE html><html> <head> <meta name="generator" content="HTML Tidy for HTML5 (experimental) for Windows https://github.com/w3c/tidy-html5/tree/c63cc39"> <title></title> </head> <body> <div id="id1" style="width
阅读全文
摘要:Firebug是网页开发的利器,能够极大地提升工作效率。但是,它不太容易上手。我曾经翻译过一篇《Firebug入门指南》,介绍了一些基本用法。今天,继续介绍它的高级用法。===================================Firebug控制台详解作者:阮一峰出处:http://www.ruanyifeng.com/blog/2011/03/firebug_console_tutorial.html 控制台(Console)是Firebug的第一个面板,也是最重要的面板,主要作用是显示网页加载过程中产生各类信息。一、显示信息的命令Firebug内置一个console对象,提供5
阅读全文
摘要:样式表有三种方式 内嵌样式(inline Style) :是写在Tag里面的,内嵌样式只对所有的Tag有效。 内部样式(internal Style Sheet):是写在HTML的<head></head>里面的,内部样式只对所在的网页有效。 外部样式表(External Style Sheet):如果很多网页需要用到同样的样式(Styles),将样式(Styles)写在一个以.css为后缀的CSS文件里,然后在每个需要用到这些样式(Styles)的网页里引用这个CSS文件。 最常用的是style属性,在JavaScript中,通过document.getElement
阅读全文
摘要:一直以来没去注意这个恒等于(三个等号:===)的运算符。后来实际工作中遇到,就想了解一下这个等于和恒等于到底有什么区别。JavaScript是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。注意0的相等运算,例如:""=="0"//false0==""//true0=="0"//truefalse=="false"//falsefalse=="0"//truefalse==undefined//falsefalse==null//falsenull==u
阅读全文
摘要:在设计页面时可能经常会用到固定层的位置,这就需要获取一些html对象的坐标以更灵活的设置目标层的坐标,这里可能就会用到document .body.scrollTop等属性,但是此属性在xhtml标准网页或者更简单的说是带<!DOCTYPE ..>标签的页面里得到的结果是0,如果不要此标签则一切正常,那么在xhtml页面怎么获得body的坐标呢,当然有办法-使用document .documentElement来取代document .body,可以这样写 例: var top = document .documentElement.scrollTop || document .b
阅读全文
摘要:有时候项目中会用到用js获取元素位置来定位元素,我在网上开了大量的 图解,代码,最终把我搞的晕了,还是结合网上的 自己来总结一下,首先来看看网上的:DOM的定义如下图获取元素的位置属性可以通过HTMLElement.offsetLeftHTMLElement.offsetTop但是,这两个属性所储存的数值并不是该元素相对整个浏览器画布的绝对位置,而是相对于其父元素位置的相对位置,也就是说这两个数值得到的是以其 父元素左上角为(0,0)点从而计算出的数值。所以我们要得到她的绝对位置,那么我们必须依次向上获取他的父元素的位置,然后获取它父元素的父元素的offersetLeft和offersetT.
阅读全文
摘要:<html><head> <title></title> <style> #slideshow{width:256px;height: 256px;position:relative;overflow: hidden;} </style></head><body><h1>Web Design</h1><p>There are things you should know</p><ol id="linklist"> <
阅读全文
摘要:<html><head> <title></title> <style> .hover{font-weight: bold;font-style: italic;} .intro{font:italic 50px Trebuchet MS;} </style></head><body><P id="example" style="font:italic 1em Trebuchet MS;color:#bbbbbb;"> html 结构层, css
阅读全文
摘要:<html><head> <meta charset=utf-8 /> <title>Explaining the Document Object Model</title></head><body><h1>What is the Document Object Model?</h1><p>The <abbr title="World Wide Web Consortium">W3c</abbr> defines the <a
阅读全文