一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Frontend

meta大全

一、HTTP-EQUIV    HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容。常用的HTTP-EQUIV类型有:    1、Content-Type和Content-Language (显示字符集的设定)   用法:<Meta http-equiv="Content-Type" Content="text/html; Charset=gb2312">或<Meta http-equiv="Content-Language" Content="zh-CN">    设定页面使用的字符集,用以说明主页制作所使用的文字或语言,浏览器会根据此来调用相应的字符集显示页面内容。简体中文一般为GB2132,繁体中文为BIG5,日文的字符集是iso-2022-jp,韩文的是ks_c_5601等。   2、Refresh (刷新)    用法:<Meta http-equiv="Refresh" Content="30">或<Meta http-equiv="Refresh" Content="5; Url=http://www.bazhan.net">   让网页多少秒刷新自己,或在多少秒后让网页自动链接到其它网页。     3、Expires (期限)    用法:<Meta http-equiv="Expires" Content="0">或<Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT">   指定网页在缓存中的过期时间,一旦网页过期,必须到服务器上重新调阅。注意:必须使用GMT的时间格式。   4、Pragma (cach模式)    用法:<Meta http-equiv="Pragma" Content="No-cach">   网页不保存在缓存中,每次访问都刷新页面。这样设定,访问者将无法脱机浏览。    5、Set-Cookie (cookie设定)    <Meta http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday,21-Oct-98 16:14:21 GMT; path=/">   浏览器访问某个页面时会将它存在缓存中,下次再次访问时就可从缓存中读取,以提高速度。当你希望访问者每次都刷新你广告的图标,或每次都刷新你的计数器,就要禁用缓存了。通常HTML文件没有必要禁用缓存,对于ASP等页面,就可以使用禁用缓存,因为每次看到的页面都是在服务器动态生成的,缓存就失去意义。如果网页过期,那么存盘的cookie将被删除。必须使用GMT的时间格式。    6、Window-target (显示窗口的设定)    用法:<Meta http-equiv="Widow-target" Content="_top">   强制页面在当前窗口以独立页面显示。这个属性是用来防止别人在框架里调用你的页面。Content选项:_blank、_top、_self、_parent。    7、Pics-label (网页RSAC等级评定)   用法:<META http-equiv="Pics-label" Contect="(PICS-1.1’http://www.bazhan.net' I gen comment 'RSACi North America […]

龙生   11 Apr 2012
View Details

非常详细的IFRAME的属性参考手册

 ALIGN align 设置或获取表格排列。  ALLOWTRANSPARENCY allowTransparency 设置或获取对象是否可为透明。  APPLICATION APPLICATION 表明对象的内容是否为 HTML 应用程序(HTA),以便免除浏览器安全模式。  ATOMICSELECTION 指定元素及其内容是否可以一不可见单位统一选择。  BEGIN begin 设置或获取时间线在该元素上播放前的延迟时间。  BORDER border 设置或获取框架间的空间,包括 3D 边框。  canHaveChildren 获取表明对象是否可以包含子对象的值。  canHaveHTML 获取表明对象是否可以包含丰富的 HTML 标签的值。  CLASS className 设置或获取对象的类。  contentWindow 获取指定的 frame 或 iframe 的 window 对象。  DATAFLD dataFld 设置或获取由 dataSrc 属性指定的绑定到指定对象的给定数据源的字段。  DATASRC dataSrc 设置或获取用于数据绑定的数据源。  disabled 获取表明用户是否可与该对象交互的值。  END end 设置或获取表明元素结束时间的值,或者元素设置为重复的简单持续终止时间。  firstChild 获取对象的 childNodes 集合的第一个子对象的引用。  FRAMEBORDER frameBorder 设置或获取是否显示框架的边框。  hasMedia 获取一个表明元素是否为 HTML+TIME 媒体元素的 Boolean 值。  HEIGHT height 设置或获取对象的高度。  HIDEFOCUS hideFocus 设置或获取表明对象是否显式标明焦点的值。  HSPACE hspace 设置或获取对象的水平边距。  ID id 获取标识对象的字符串。  innerText 设置或获取位于对象起始和结束标签内的文本。  isContentEditable 获取表明用户是否可编辑对象内容的值。  isDisabled 获取表明用户是否可与该对象交互的值。  isMultiLine 获取表明对象的内容是包含一行还是多行的值。  isTextEdit 获取是否可使用该对象创建一个 TextRange 对象。  […]

龙生   13 Feb 2012
View Details

param里参数的详解

    <object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="580" height="110"> <param name="_cx" value="10372"> <param name="_cy" value="2355"> <param name="FlashVars" value="-1"> <param name="Movie" value="swf.swf"> <param name="Src" value="1.swf"> <param name="WMode" value="Transparent"> <param name="Play" value="-1"> <param name="Loop" value="-1"> <param name="Quality" value="High"> <param name="SAlign" value> <param name="Menu" value="0"> <param name="Base" value> <param name="AllowScriptAccess" value="always"> <param name="Scale" value="ShowAll"> <param name="DeviceFont" value="0"> <param name="EmbedMovie" value="0"> <param name="BGColor" value> <param name="SWRemote" value> <embed src="1.swf" width="580" height="110" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" menu="false"></embed> </object>     ——————————————————————————————————————————- 参数和属性   下列标记属性和参数描述了由“发布”命令创建的 HTML 代码。在编写自己的用于显示 Flash 内容的 HTML 时,可以参考此列表。除非特别说明,否则所有条目都同时适用于 object 标记和 embed 标记。可选条目也在此列出。Internet Explorer […]

龙生   13 Feb 2012
View Details

45个非常奇妙的 CSS3 特性应用示例

  这篇文字收集了45个让人觉得不可思议的 CSS3 应用示例,它们验证了 CSS3 Transform 和 Transition 等属性的强大能力。随着越来越多的浏览器对 CSS3 支持的不断完善,设计师和开发者们有了更多的选择,以前需要使用 JavaScript 才能实现的各种很酷的界面效果和动画,如今使用纯 CSS 代码就可以很容易实现。 CSS3 Clock With jQuery Another Image Gallery Sliding Vinyl 3D Cube That Rotates Using Arrow Keys Multiple 3D Cubes (Slide In/Out) CSS3 Accordion Auto-Scrolling Parallax Isocube Image Gallery Matrix 7 Javascript-effect Alternatives Using CSS3 Image Hover Effects Turning Coke Can (Control With Scrollbar) 3D Meninas Polaroid Gallery Space Note: this one is graphic intense and takes a while to load, but the result is crazy! Mac Dock Drop-In Modals Zooming Polaroids Animated Rocket Poster […]

龙生   29 Dec 2011
View Details

JavaScript 面向对象程序设计(下)——继承与多态

 1 又是几个基本概念  为什么要说又呢?     在讨论继承时,我们已经列出了一些基本概念了,那些概念是跟封装密切相关的概念,今天我们要讨论的基本概念,主要是跟继承与多态相关的,但是它们跟封装也有一些联系。    1.1 定义和赋值  变量定义是指用    var a;  这种形式来声明变量。    函数定义是指用    function a(…) {…}  这种形式来声明函数。    var a = 1;  是两个过程。第一个过程是定义变量 a,第二个过程是给变量 a 赋值。    同样    var a = function(…) {};  也是两个过程,第一个过程是定义变量 a 和一个匿名函数,第二个过程是把匿名函数赋值给变量 a。    变量定义和函数定义是在整个脚本执行之前完成的,而变量赋值是在执行阶段完成的。    变量定义的作用仅仅是给所声明的变量指明它的作用域,变量定义并不给变量初始值,任何没有定义的而直接使用的变量,或者定义但没有赋值的变量,他们的值都是 undefined。    函数定义除了声明函数所在的作用域外,同时还定义函数体结构。这个过程是递归的,也就是说,对函数体的定义包括了对函数体内的变量定义和函数定义。    通过下面这个例子我们可以更明确的理解这一点:    Java代码   alert(a);   alert(b);   alert(c);   var a = "a";   function a() {}   function b() {}   var b = "b";   var c = "c";   var c = function() {} […]

龙生   26 Dec 2011
View Details

JavaScript 面向对象程序设计(上)——封装

 JavaScript 是一种非常灵活的面向对象程序设计语言,它与传统的强类型的面向对象程序设计语言(如 C++,Java,C# 等)有很大不同,所以要实现如 C++、java、C# 当中的一些特性就需要换一种思考方式来解决。今天主要讨论如何在 JavaScript 脚本中实现数据的封装(encapsulation)。 数据封装说的简单点就是把不希望调用者看见的内容隐藏起来。它是面向对象程序设计的三要素之首,其它两个是继承和多态,关于它们的内容在后面再讨论。 关于数据封装的实现,在 C++、Java、C# 等语言中是通过 public、private、static 等关键字实现的。在 JavaScript 则采用了另外一种截然不同的形式。在讨论如何具体实现某种方式的数据封装前,我们先说几个简单的,大家所熟知却又容易忽略的 JavaScript 的概念。 1 几个基本概念   1.1 变量定义 在 JavaScript 语言中,是通过 var 关键字来定义变量的。 但是如果我们直接给一个没有使用 var 定义的变量赋值,那么这个变量就会成为全局变量。 一般情况下,我们应该避免使用没有用 var 定义的变量,主要原因是它会影响程序的执行效率,因为存取全局变量速度比局部变量要慢得多。 但是这种用法可以保证我们的变量一定是全局变量。 另外,为了保证速度,我们在使用全局变量时,可以通过 var 定义一个局部变量,然后将全局变量赋予之,由此可以得到一个全局变量的局部引用。 1.2 变量类型 没有定义的变量,类型为 undefined。 变量的值可以是函数。 函数在 JavaScript 中可以充当类的角色。 1.3 变量作用域 变量作用域是指变量生存周期的有效范围。 单纯用 { } 创建的块不能创建作用域。 with 将它包含的对象作用域添加到当前作用域链中,但 with 不创建新的作用域。with 块结束后,会将对象作用域从当前作用域链中删除。 try-catch 中,catch 的错误对象只在 catch 块中有效,但 catch 块中定义的变量属于当前作用域。 其它如 if、for、for-in、while、do-while、switch 等控制语句创建的块不能创建作用域。 用 function 创建的函数,会创建一个新的作用域添加到当前作用域中。 2 封装   下面我们就来讨论具体的封装。首先说一下大家最熟悉的几种封装:私有实例成员、公有实例成员和公有静态成员。最后会讨论一下大家所不熟悉的私有静态成员和静态类的封装办法。因为下面要讨论的是面向对象编程,所有当函数作为类来定义和使用时,我们暂且将其成为类。 2.1 私有实例成员 私有实例成员在 JavaScript 中实际上可以用函数内的局部变量来实现,它相当于类的私有实例成员。例如: class1 = function() {     // private […]

龙生   26 Dec 2011
View Details

JavaScript定义类或函数的几种方式小结

 提起面向对象我们就能想到类,对象,封装,继承,多态。在《javaScript高级程序设计》(人民邮电出版社,曹力、张欣译。英文名字是:Professional JavaScript for Web Developers)这本书中描述的还算比较详细。我们看看JavaScript中定义类的各种方法。 1.工厂方式 javaScript中创建自己的类和对象,我们应该是必须掌握的,我们都知道javaScript中对象的属性可以在对象创建后动态定义,比如下面的代码:  复制代码代码如下: <script type="text/javascript"> //定义 var oCar = new Object(); oCar.color = "red"; oCar.doors = 4; oCar.showColor = function() { alert(this.color); } //调用 oCar.showColor(); </script>  我们很容易使用oCar对象,但是我们创就是想创建多个Car实例。我们可以使用一个函数来封装上面的代码来实现:<script type="text/javascript">  复制代码代码如下: //定义 function createCar() { var oCar = new Object(); oCar.color = "red"; oCar.doors = 4; oCar.showColor = function() { alert(this.color); } return oCar; } //调用 var ocar1 = createCar(); var ocar2 = createCar(); ocar1.color = "black"; ocar1.showColor(); ocar2.showColor(); </script>  顺便说一下,javaScript对象默认成员属性都是public 的。这种方式我们称为工厂方式,我们创造了能创建并返回特定类型的对象的工厂。 这样做有点意思了,但是在面向对象中我们经常使用创建对象的方法是: Car car=new Car(); 使用new 关键字已经深入人心,因此我们使用上面的方法去定义总感觉别扭,并且每次调用时都去创建新的属性以及函数,功能上也不实际。下来我们看看构造函数的形式定义类。 2.构造函数 这种方式看起来有点象工厂函数。具体表现如下:  复制代码代码如下: <script type="text/javascript"> //定义 function Car(color, doors) { this.color = color; this.doors = doors; this.showColor = function() { alert(this.color); }; } //调用 var car1 = new Car("red", 4); var car2 = new Car("blue", 4); car1.showColor(); car2.showColor(); </script>  看起来效果很明显,有差别了吧。感觉有点意思了。在构造函数内部创造对象使用this 关键字,使用new 运算符创建对象感觉非常亲切。但是也有点问题:每次new 对象时都会创建所有的属性,包括函数的创建,也就是说多个对象完全独立,我们定义类的目的就是为了共享方法以及数据,但是car1对象与car2对象都是各自独立的属性与函数,最起码我们应该共享方法。这就是原形方式的优势所在。 3.原型方式 利用对象的prototype属性,可把它看出创建新对象所依赖的原型。方法如下:  复制代码代码如下: <script type="text/javascript"> //定义 function Car() { }; Car.prototype.color = "red"; Car.prototype.doors = 4; Car.prototype.drivers = new […]

龙生   26 Dec 2011
View Details

Javascript面向对象编程(三):非构造函数的继承

 这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。 今天是最后一个部分,介绍不使用构造函数实现"继承"。 一、什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人"。   var Chinese = {nation:’中国'}; 还有一个对象,叫做"医生"。   var Doctor ={career:’医生'} 请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一个"中国医生"的对象? 这里要注意,这两个对象都是普通对象,不是构造函数,无法使用构造函数方法实现"继承"。 二、object()方法 json格式的发明人Douglas Crockford,提出了一个object()函数,可以做到这一点。   function object(o) {     function F() {}     F.prototype = o;     return new F();   } 这个object()函数,其实只做一件事,就是把子对象的prototype属性,指向父对象,从而使得子对象与父对象连在一起。 使用的时候,第一步先在父对象的基础上,生成子对象:   var Doctor = object(Chinese); 然后,再加上子对象本身的属性:   Doctor.career = '医生'; 这时,子对象已经继承了父对象的属性了。   alert(Doctor.nation); //中国 三、浅拷贝 除了使用"prototype链"以外,还有另一种思路:把父对象的属性,全部拷贝给子对象,也能实现继承。 下面这个函数,就是在做拷贝:   function extendCopy(p) {     var c = {};     for (var i in p) { c[i] = p[i];}     c.uber = p;     return c;} 使用的时候,这样写:   var Doctor = extendCopy(Chinese);   Doctor.career = '医生';   alert(Doctor.nation); // 中国 但是,这样的拷贝有一个问题。那就是,如果父对象的属性等于数组或另一个对象,那么实际上,子对象获得的只是一个内存地址,而不是真正拷贝,因此存在父对象被篡改的可能。 请看,现在给Chinese添加一个"出生地"属性,它的值是一个数组。   Chinese.birthPlaces = ['北京',’上海',’香港']; 通过extendCopy()函数,Doctor继承了Chinese。   var Doctor = extendCopy(Chinese); 然后,我们为Doctor的"出生地"添加一个城市: […]

龙生   26 Dec 2011
View Details

Javascript面向对象编程(二):构造函数的继承

 这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。 今天要介绍的是,如何生成一个"继承"多个对象的实例。 比如,现在有一个"动物"对象的构造函数, function Animal(){     this.species = "动物";   } 还有一个"猫"对象的构造函数, function Cat(name,color){     this.name = name;     this.color = color;   } 怎样才能使"猫"继承"动物"呢? 1. 构造函数绑定 最简单的方法,大概就是使用call或apply方法,将父对象的构造函数绑定在子对象上,也就是在子对象构造函数中加一行:   function Cat(name,color){     Animal.apply(this, arguments);     this.name = name;     this.color = color;   }   var cat1 = new Cat("大毛","黄色");   alert(cat1.species); // 动物 2. prototype模式 更常见的做法,则是使用prototype属性。 如果"猫"的prototype对象,指向一个Animal的实例,那么所有"猫"的实例,就能继承Animal了。   Cat.prototype = new Animal();   Cat.prototype.constructor = Cat;   var cat1 = new Cat("大毛","黄色");   alert(cat1.species); // 动物 代码的第一行,我们将Cat的prototype对象指向一个Animal的实例。   Cat.prototype = new Animal(); 它相当于完全删除了prototype 对象原先的值,然后赋予一个新值。但是,第二行又是什么意思呢?   Cat.prototype.constructor = Cat; 原来,任何一个prototype对象都有一个constructor属性,指向它的构造函数。也就是说,Cat.prototype 这个对象的constructor属性,是指向Cat的。 我们在前一步已经删除了这个prototype对象原来的值,所以新的prototype对象没有constructor属性,所以我们必须手动加上去,否则后面的"继承链"会出问题。这就是第二行的意思。 总之,这是很重要的一点,编程时务必要遵守。下文都遵循这一点,即如果替换了prototype对象,   o.prototype = {}; 那么,下一步必然是为新的prototype对象加上constructor属性,并将这个属性指回原来的构造函数。   o.prototype.constructor = o; 3. 直接继承prototype 由于Animal对象中,不变的属性都可以直接写入Animal.prototype。所以,我们也可以让Cat()跳过 Animal(),直接继承Animal.prototype。 现在,我们先将Animal对象改写:   function […]

龙生   26 Dec 2011
View Details
1 60 61 62 65