Archive for the Category ◊ JavaScript ◊

Author: 大仙
• 星期五, 1月 29th, 2010
//原型链只是 链接

function ClassA (sName,sColor){
   this.name = sName;
   this.color = sColor;
}
ClassA.prototype.name = "Car";
ClassA.prototype.sayName = function(){
        alert(this.name);
}
var obj = new ClassA("Car","red");
obj.name ="Clothes";
obj.sayName();//Colothes
delete obj.name;
obj.sayName();//Car

//=======================================================

//this
//全局this

alert(this === window);//true
alert(window.alert === this.alert);//true
alert(this.parseInt(035,10))l//29

//this是运行时决定的,而不是函数定义的

function sayColor(){//定义一个全局函数,相当于window.sayColor();
      alert(this.color);
}
var color = "red";//定义一个全局变量,相当于window.color = "red";
//sayColor();//等价于window.sayColor();输出red

var Car = {//自定义对象
     color:"blue"//注意语法符号
}
sayColor.apply(this);//等价于window.sayColor();输出red
sayColor.apply(Car);//sayColor中的this===Car;输出blue

//=======================================================

//函数也是对象

//定义一个全局函数

function sayColor(){
    if (this === window){
	      alert ("this is window");
	}
}
sayColor();//this is window
//将sayColor函数的一个color属性定义为函数
sayColor.color = function(){
    if (this === window ){
	     alert("this is window");
	}else if (this === sayColor){
	     alert("this is sayColor");
	}else if (this === sayName){
	     alert("this is sayName");
	}
}
sayColor.color();//this is sayColor
//定义一个新对象用来传递给它
var sayName = new Object;
sayColor.color.apply(sayName);//this is sayName

//=======================================================

//prototype
//在Array的原型中添加min方法

Array.prototype.min = function(){
     var min = this[0];
	 for (var i = 1;i < this.length; i++){
	     if (this[i] < min){
		     min = this[i];
		 }

	 }
	 		 return min;
};
//alert([52,62,2,3,88,99,6].min());//输出2

//但是,神奇的瞬间发生了
var aValue = [];
for (var i in aValue){
	  alert(i);//输出min,for-in中把min方法循环了出来!用hasOwnProperty解决该问题
	  //if (aValue.hasOwnProperty(i)){//判断是否为aValue中的成员
	  // alert(i);
	 // }
}

//=======================================================

//contructor
//contructor始终指向创建当前对象的函数

var arr = [5545,22,553];
var fnTest= function (){};
var oTest = {};//等价于new Object();
alert(arr.constructor === Array);//true
alert(fnTest.constructor === Function);//true
alert(oTest.constructor === Object);//true

//自定义函数

function Car(sColor){
         this.color = sColor;
}
Car.prototype.sayColor = function(){
         alert(this.color);
}
var obj = new Car("red");
//alert(obj.constructor === Car);//true
//alert(Car.prototype.constructor === Car);//true
//alert(obj.constructor.prototype.constructor === Car);//true

//但是!
function Car(sColor){
         this.color = sColor;
}
Car.prototype = {                  //这里被对象覆盖了
        sayColor:function (){
		   alert(this.color);
		}
}
var obj = new Car("red");
alert(obj.constructor === Car);//false
alert(Car.prototype.constructor === Car);//false
alert(obj.constructor.prototype.constructor === Car);//false
//alert(obj.constructor === Object);//true
//alert(Car.prototype.constructor === Object);//true
//alert(obj.constructor.prototype.constructor === Object);//true

//解决方法重新覆盖,这样Car.prototype.constructor === Car
Category: JavaScript  | Leave a Comment
Author: 大仙
• 星期一, 5月 04th, 2009

折腾了一天,撞鬼。想在商品列表中点击购买后弹出提示框,根据document.body.scrollTop设置显示位置,可偏偏失效。
原因:当网站做了以下声明时(<!–CTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt–>),声明后document.body.scrollTop的值永远等于0,解决办法是只需把document.body用document.documentElement替换即可。

——————————————————————————————————

附:javascript中关于top、clientTop、scrollTop、offsetTop等

javascript关于top、clientTop、scrollTop、offsetTop等

网页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域宽: document.body.offsetWidth   (包括边线的宽);
网页可见区域高: document.body.offsetHeight  (包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;
网页被卷去的高: document.body.scrollTop;
网页被卷去的左: document.body.scrollLeft;
网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;
屏幕可用工作区高度: window.screen.availHeight;
屏幕可用工作区宽度:window.screen.availWidth;

Category: JavaScript  | Tags:  | Leave a Comment
Author: 大仙
• 星期六, 5月 02nd, 2009

这东西真厉害,我想网页木马应该是先将木马程序缓存到临时文件夹然后来一个shell。本地测试了下OK,到这里貌似不行,挂着先了

(说明:这只是提供一种思路,不过能不能运行还要看IE的安全设置。)

提示:你可以先修改部分代码再运行。

Category: JavaScript  | Tags:  | Leave a Comment