標簽歸檔:js

新寫的一個ajax類,用于新項目cms客戶端

這個函數我覺得還是比較實用的,用于69dns.com的一個新項目。代碼有點熟悉?不過這個可是我原創的代碼哦。
還有一個控制xml,控制form,控制css,以及加載的boot.js。
當然還有很多東西都不完善,等以后有空的時候,都整理一下。
實際上只是創建了一個stcms的json對象。為了能獨立使用加入了if(typeof(stcms)==”undefined”)stcms={};,算是另類的命名空間吧。

/*
文件:ajax.js
掛載:stcms
獨立:可獨立使用
設計:貓七@69dns.com
*/

(function(){
	if(typeof(stcms)=="undefined")stcms={};
	stcms.ajaxstatus=0;
	stcms.ajax=function(url,str,method,callback){
		if(stcms.ajaxstatus==1){
			alert("請等待上一個進程處理完。");
			return;
		}
		if(url.indexOf("?")!=-1)url+="&sendTme="+new Date();else url+="?sendTme="+new Date();
		var xmlhttpRequest;
		if(typeof(xmlhttpRequest!="object")){
	  	if(window.ActiveXObject){
	  		try{ 
	  			xmlhttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	  		}catch(e){ 
	  			xmlhttpRequest = false;
	  		}
			}else if(window.XMLHttpRequest){
				xmlhttpRequest = new XMLHttpRequest();
			}
		}
		if(xmlhttpRequest){
			stcms.ajaxstatus=1;
			xmlhttpRequest.open(method,url,true);
			if(method=="post")xmlhttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
			xmlhttpRequest.setRequestHeader("charset","gb2312");
			xmlhttpRequest.onreadystatechange=function(){
				if(xmlhttpRequest.readyState==4){
					if(xmlhttpRequest.status==200){
					 	callback(xmlhttpRequest.responseText);
					 	stcms.ajaxstatus=0;
					}
				}
			};
			xmlhttpRequest.send(str);
		}
  }
})();

使用方法很簡單:

stcms.ajax('a.asp',null,'get',function(t){alert(t)});

很簡單吧。另外發一下我boot.js,我覺得還是比較實用的;

/*
文件:boot.js
掛載:root
功能:加載js
設計:貓七@69dns.com
*/
(function(skin){
	var i,ie,d;
	stcms={
		listen:function(f){
			var l;
			window.onload=(typeof(l=window.onload)!='function')?f:function(){l();f();};
		},
		$:function(id){
			return document.getElementById(id);
		}
	};
	ie=!!((d=(document)).all);
	(function(arr){
		for(i in arr){
			var o=d.createElement("script");
			o.setAttribute("type","text/javascript");
			o.setAttribute("src",arr[i].replace("stcms.","js/").replace(/\./g,"\/").replace("*","all")+".js")
			d.getElementsByTagName('head')[0].appendChild(o);
		}
	})([
		'stcms.common.client.mouse',
		'stcms.common.client.keyboard',
		'stcms.skin.'+skin,
		'stcms.common.form.form',
		'stcms.common.form.grid',
		'stcms.common.form.box',
		'stcms.common.ajax',
		'stcms.common.xml',
		'stcms.common.cookie',
		'stcms.user.checklogin',
		'stcms.control.init'
	]);
})('default');

現在boot.js已經實現了皮膚,listen(實際就是window.onload),加載js,通過id獲取dom等四個功能。
其他的可能就不太常用的,吧所有的都細分,這樣可以減少請求和文件大小哦。
‘stcms.common.ajax’,就是上邊的ajax.js。

如果有時間,我也準備寫個js框剪,集合了所有的功能,哈哈哈。

可以方便的給DOM對象添加方法,可支持所有瀏覽器

Test
Test
/*
文件名:set-Object.html
設計者:苗啟源
功  能:可以方便的給DOM對象添加方法,可支持所有瀏覽器
主  頁:http://www.okfdzs1809.com/p/set-Object
*/
var $=function(id){return document.getElementById(id);}
//SetObject 設置對象屬性
var setObject=function(c,d){for(p in d){c[p]=d[p];if(p=="init")c.init();}return c;}
//擴展屬性
var __isIE=function(){return window.ActiveXObject}
var __Name=function(t){if(this.tmp)this.name=this.tmp;else this.name='Hello'}
var __setClass=function(t){if(__isIE){this.className=t}else{this.setAttribute('class',t);}}
var __getClass=function(){if(__isIE){return this.className}else{return this.getAttribute('class');}}

//測試對象
var ob=$("Demo");var ob2=$("Demo2");
setObject(ob,{tmp:'Demo',init:__Name,setClass:__setClass,getClass:__getClass});
setObject(ob2,{init:__Name,setClass:__setClass,getClass:__getClass});
document.write(ob.name+"\n");
document.write(ob2.name+"\n");
document.write(ob.getClass()+"\n");
document.write(ob2.getClass()+"\n");
ob.setClass('newDemoClass');
ob2.setClass('newDemo2Class');
document.write(ob.getClass()+"\n");
document.write(ob2.getClass()+"\n");

用Javascript實現郵件加密,寫了一個類

?????? 最近,朋友要給他的客戶與客戶交流,涉及一些很重要的信息,通過QQ,MSN感覺很不可靠,于是請我寫一個加密解密工具,防止信息在中途被截取。

????? 解密工具直接交給客戶,而交流信息通過E-mail或QQ。汗,我等小鳥怎么會那種高深的東東,實在是。。。為了朋友,赴刀山,下火海,奮斗了一個晚上,終于寫出來了一個。好東西不敢分享,發出來共享給大家,高手見笑了。

??? 原文地址為:http://miaoqiyuan.cn/p/javascript-jiami

??? 因為朋友特別說是很重要的信息,我想到了以前學C的時候有一個把每個字符的編碼讀取出來加13的一個算法。正巧Javascript中有一個charCodeAt,呵呵,把要加密的內容,依次對出每個字符的字符編碼,然后做一些處理,嘎嘎。。。。只要不知道算法,還是很難破解出來的,呵呵。

??? 具體算法還是大家自己看吧,說出來就沒有意思了。本文的算法與給朋友的稍微有些差別,畢竟安全第一。下面是運行界面,還是使用了我喜歡的hta文件。代碼全是Javascript。

js-jiami

js-jiemi

測試地址:
加密:http://www.okfdzs1809.com/products/js-jiami.htm
解密:http://www.okfdzs1809.com/products/js-jiemi.htm

加密.hta代碼(完全可以保存為html,執行效果一樣)

< !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>設置加密郵件內容</title>
<script type="text/javascript">
function itArt(){
	this.html="Hello";
	this.css="color:#000;width:640px;text-indent:20px;padding:5px;border:solid 5px #666;margin:5px;background:#CCC;margin-left:auto;margin-right:auto";
	this.length=0;
}
 
itArt.prototype = {
	init:function(){
		this.length=this.html.length;
	},
	play:function(){
		this.init();
		this.setPassword();
		this.echo();
	},
	setHtml:function(v){
		this.html=v;
	},
	setPassword:function(){
		var tmp="";
		for(var i=0;i<this .length;i++){
			tmp+="$"+this.html.charCodeAt(i);
		}
		this.html=tmp;
		tmp="";
		for(var i=0;i<this.html.length;i+=3){
			tmp+=" "+this.html.substr(i,3);
		}
		this.html=tmp;
		tmp="";
		for(var i=0;i<this.html.length;i++){
			tmp+=" "+this.html.charCodeAt(i);
		}
		this.html=tmp;
	},
	echo:function(){
		var t=document.createElement("div");
		t.innerHTML=this.html;
		if(window.ActiveXObject)
			t.style.cssText=this.css;
		else
			t.setAttribute("style",this.css);
		//不想用DOM刪掉子元素了,反正各瀏覽器都支持
		document.getElementById("x100").innerHTML="";
		document.getElementById("x100").appendChild(t);
	}
}
function setPassword(t){
	if(t!=""){
		var demo=new itArt();
		demo.setHtml(t);
		demo.play();
	}else{
		alert("請輸入內容開始加密");
	}
}
window.onload=function(){
	setPassword("你好,猜猜我給你的密文是什么? 哈哈,猜不到吧");
}
</script>
</this></script></head>
<body>
<textarea style="display:block;color:#000;width:640px;height:280px;text-indent:20px;border:solid 5px #666;margin:5px;background:#FFF;margin-left:auto;margin-right:auto" ondblclick="setPassword(this.value);" title="雙擊開始加密">你好,猜猜我給你的密文是什么? 哈哈,猜不到吧</textarea>
<div id="x100">
</div>
</body>

解密.hta代碼

< !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>獲取加密郵件內容</title>
<script type="text/javascript">
function itArt(){
	this.html="Hello";
	this.css="color:#000;width:640px;text-indent:20px;padding:5px;border:solid 5px #666;margin:5px;background:#CCC;margin-left:auto;margin-right:auto";
	this.length=0;
}
 
itArt.prototype = {
	init:function(){
		this.length=this.html.length;
	},
	play:function(){
		this.init();
		this.setPassword();
		this.echo();
	},
	setHtml:function(v){
		this.html=v;
	},
	setPassword:function(){
		var tmp=this.html.split(" "),tmps="";
		for(i=0;i<tmp .length;i++){
			tmps+=String.fromCharCode(tmp[i]);
		}
		this.html=tmps.replace(" ","");
		tmps="";
		tmp=this.html.split("$");
		for(i=0;i<tmp.length;i++){
			if(tmp[i]!=""&&tmp[i]!=0){
				tmps+=String.fromCharCode(tmp[i].replace(" ",""));
			}
		}
		this.html=tmps;
	},
	echo:function(){
		var t=document.createElement("div");
		t.innerHTML=this.html;
		if(window.ActiveXObject)
			t.style.cssText=this.css;
		else
			t.setAttribute("style",this.css);
		//不想用DOM刪掉子元素了,反正各瀏覽器都支持
		document.getElementById("x100").innerHTML="";
		document.getElementById("x100").appendChild(t);
	}
}
 
demo=new itArt();
demo.setHtml();
function getPassword(t){
	if(t!=""){
	var demo=new itArt();
	demo.setHtml(t);
	demo.play();
	}else{
		alert("請輸入內容開始解密");
	}
}
window.onload=function(){
	getPassword("32 36 50 48 32 51 50 48 32 36 50 50 32 57 48 57 32 36 54 53 32 50 57 50 32 36 50 57 32 52 54 56 32 36 50 57 32 52 54 56 32 36 50 53 32 49 48 53 32 36 51 50 32 52 55 51 32 36 50 48 32 51 50 48 32 36 51 48 32 51 52 48 32 36 50 51 32 52 57 52 32 36 50 53 32 57 57 49 32 36 50 54 32 49 53 57 32 36 50 48 32 49 54 48 32 36 50 48 32 48 52 48 32 36 54 53 32 51 49 49 32 36 51 50 32 36 50 49 32 55 48 52 32 36 50 49 32 55 48 52 32 36 54 53 32 50 57 50 32 36 50 57 32 52 54 56 32 36 49 57 32 57 56 49 32 36 50 49 32 48 52 48 32 36 50 49 32 53 52 51");
}
</script>
</tmp></script></head>
<body>
<textarea style="display:block;color:#000;width:640px;height:280px;text-indent:20px;border:solid 5px #666;margin:5px;background:#FFF;margin-left:auto;margin-right:auto" ondblclick="getPassword(this.value);" title="雙擊開始解密">32 36 50 48 32 51 50 48 32 36 50 50 32 57 48 57 32 36 54 53 32 50 57 50 32 36 50 57 32 52 54 56 32 36 50 57 32 52 54 56 32 36 50 53 32 49 48 53 32 36 51 50 32 52 55 51 32 36 50 48 32 51 50 48 32 36 51 48 32 51 52 48 32 36 50 51 32 52 57 52 32 36 50 53 32 57 57 49 32 36 50 54 32 49 53 57 32 36 50 48 32 49 54 48 32 36 50 48 32 48 52 48 32 36 54 53 32 51 49 49 32 36 51 50 32 36 50 49 32 55 48 52 32 36 50 49 32 55 48 52 32 36 54 53 32 50 57 50 32 36 50 57 32 52 54 56 32 36 49 57 32 57 56 49 32 36 50 49 32 48 52 48 32 36 50 49 32 53 52 51</textarea>
<div id="x100">
</div>
</body>

怎樣創建Javascript對象?

感謝小秦幫我指出錯誤:
  JSON只是一種數據形式,而不是你所謂的當然。
{xx:’111′}  這是一個對象,這個對象有一個屬性名為 xx 值為 ’111′
而不是JSON。

還有那個Create,也只是變相的使用函數返回一個對象而已。

從根本上來講,創建一個對象可以使用 new _object_,或者 {}  ,

“{}”這種形式其實是new _object_的簡寫。
就像 [] 是 new Array();的縮寫一樣。

更何況,在JS里一切都是對象。

比如:
1
 就是一個對象,它有 .toString方法,等等。。

????? 前幾天寫了一篇揭開Javascript對象神秘的面紗,結果網上一位牛人轉載了我的文章,我的還沒收錄,他轉載的竟然先被收錄了,無語。在此鄙視百度。

????? 本來事情該告一段落了,但是論壇上有位網友告訴我說只測試function的方法成功了,其他都不行。汗,今晚抽點空,寫幾個例子,下載地址為:http://www.okfdzs1809.com/products/js-obj.rar

第一種:function方式,用new fun_name的方式創建對象

function miaoqiyuan() {
	this.name="苗啟源";
	this.nickname="飛貓,mqycn";
	this.homeurl=function() {
		alert("http://www.okfdzs1809.com");
	};
	this.gohome=function() {
		location.href="http://www.okfdzs1809.com";
	}
}
var x=new miaoqiyuan;
x.homeurl();

第二種:直接創建對象的方式

var miaoqiyuan={
	name:"苗啟源",
	nickname:"飛貓,mqycn",
	homeurl: function() {
		alert("http://www.okfdzs1809.com");
	},
	gohome: function() {
		location.href="http://www.okfdzs1809.com";
	}
};
miaoqiyuan.homeurl();

第三種:原型方式(這個我寫了兩個方式)

var miaoqiyuan = {};
miaoqiyuan.prototype=miaoqiyuan;
miaoqiyuan.prototype.name ="苗啟源";
miaoqiyuan.prototype.nickname ="mqycn,飛貓";
miaoqiyuan.prototype.homeurl = function() {
	alert("http://www.okfdzs1809.com");
};
miaoqiyuan.prototype.gohome= function() {
	location.href="http://www.okfdzs1809.com";
};
miaoqiyuan.homeurl();
<script type="text/javascript">
var miaoqiyuan = {};
miaoqiyuan.prototype=miaoqiyuan;
miaoqiyuan.prototype={
	name:"苗啟源";
	nickname:"mqycn,飛貓";
	homeurl:function() {
		alert("http://www.okfdzs1809.com");
	};
	gohome:function() {
		location.href="http://www.okfdzs1809.com";
	};
}
miaoqiyuan.homeurl();
</script>

第四種:create方式,該方式利用了Prototype JavaScript組件庫,很少見有人用
實際上這個只是變相的使用函數返回一個對象而已。

//模擬prototype.js框架中的Class
var Class = {create: function() {return function(){}}}
//模擬prototype.js框架中的Object
Object.extend=function(destination, source){
	for(var property in source)
		destination[property] = source[property];
	return destination;
}; 
 
var miaoqiyuan = Class.create();
Object.extend(miaoqiyuan.prototype,{
	name:"苗啟源",
	nickname:"飛貓,mqycn",
	homeurl: function() {
		alert("http://www.okfdzs1809.com");
	},
	gohome: function() {
		location.href="http://www.okfdzs1809.com";
	}
});
var m=new miaoqiyuan;
m.homeurl();

域名統計篩選程序,生成Excel文件(.xls)或HTML網頁文件(.html)

朋友手中有上千個域名,現在cn域名續費漲價了,準備拋棄一些。讓我幫忙寫個小程序來篩選一下,看看那個有留下的價值。當時我放出大話,20分鐘搞定。最初設想的是生成Excel文件,通過Excel中的篩選來統計。

代碼如下(附件包中的excel.vbs):

'域名統計程序,生成excel結果
'通過VBS獲取當前目錄,替代ASP中的Server.Mappath
Function Mappath(v)
 Mappath=fso.getAbsolutePathName(v)
End Function
 
'寫得一個函數,用于判斷字符串中是否含有數字。
Function iszajiao(v)
	for i=1 to len(v)
		if isnumeric(mid(v,i,1)) then
			iszajiao=1
			exit for
		end if
	next
End Function
 
'創建一個FSO對象
Set fso=CreateObject("Scripting.FileSystemObject")
 
'判斷是否有生成的Excel結果ok.xls,如果有,則刪除
if fso.fileexists(mappath("ok.xls")) then fso.getfile(mappath("ok.xls")).delete
 
'創建一個ok.xls
set fto=fso.createtextfile(mappath("ok.xls"),2)
wscript.echo "吳哥哥,請稍等,我正在為您工作中。。。"
fto.writeline "域名	后綴	位數	類型"
 
'尋找當前目錄中的所有txt文件,如果有則依次打開
for each file in fso.getfolder(mappath(".")).files
	if Lcase(fso.getExtensionName(file))="txt" then
		set db=fso.opentextfile(file,1)
 
		'如果不是在txt文件的結尾,則循環讀取
		do while not db.atendofstream
			rs=db.readline
 
			'獲取域名的位數,即第一次出現.的位置-1
			ws=cint(instr(rs,".")-1)
 
			'防止本行數據為空行
			if ws>=1 then
				rsi=rsi+1
 
				'獲取域名
				ym=left(rs,ws)
 
				'獲取域名后綴
				hz=replace(rs,ym&".","")
 
				'分析域名類型,如果ym為數字則為數字
				if isnumeric(ym) then
					lx="數字"
				'否則,如果出現數字則為雜交
				elseif iszajiao(ym)=1 then
					lx="雜交"
				'其他類型就剩下字母了
				else
					lx="字母"
				end if
				'輸出
				fto.writeline ym&"	"&hz&"	"&ws&"	"&lx
			end if
		loop
	end if
next
fto.close
set fto=nothing
msgbox "吳哥哥,我幫你完成工作了,怎么謝我呢?請我吃MM吧"

正準備邀功請賞的時候,朋友竟然說沒用過Excel,狂吐血,并且還不想用數據庫。這兒就有點復雜了,初步設想生成HTML文件,然后把數據保存到數組中,根據Select的選項來現在最終結果。

我是從兩個方便考慮的,生成網頁部分由Javascript控制,這些Javascript最終代碼由VBScript來生成。

思路明確了,首先來考慮由Javascript控制的網頁。演示頁面:http://www.okfdzs1809.com/products/js-array-ymtj.html

<html><head><title>生成結果</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script type="text/javascript">
var rs=new Array();
rs[1]=Array('sjtian','cn',6,'字母');
rs[2]=Array('zhaozhetao','cn',10,'字母');
rs[3]=Array('qiangjiaoshu','cn',12,'字母');
rs[4]=Array('bszange','cn',7,'字母');
rs[5]=Array('6688fafa','cn',8,'雜交');
rs[6]=Array('xswjm','cn',5,'字母');
rs[7]=Array('fpjtw','cn',5,'字母');
rs[8]=Array('jssj','js.cn',4,'字母');
rs[9]=Array('chengzhun','com',9,'字母');
rs[10]=Array('yfxqqiu','cn',7,'字母');
</script>
<script type="text/javascript">
var __res,__lx,__ws,__hz,__j,__isrun,__rscount=0;
var __mqy=function(){
	//判斷是否在進程中,如果在進程中則退成,否則將進程設為活動
	if(__isrun==1)
		return eval(__sorry("還在運算中,你想累死你的愛機?"));
	else
		__isrun=1;
	//和朋友開個玩笑
	var __mm=confirm("吳哥哥,你確定請我吃MM嗎?");
	if(__mm==false)
		return eval(__sorry("好,你不請我吃,那我不工作了"));
	if(typeof(__res)!="object")
		__res=document.getElementById("__res");
 
	//改變字體顏色,背景,提示現在程序正在執行中。
	__res.style.background="#FF0";
	__res.style.color="#F00";
	__res.innerHTML="<p>謝謝吳哥哥請我吃MM,正在生成中,請稍后。。。</p><p>因為數據過多,程序可能執行有點慢,請耐心等候</p>";
 
	//一秒之后執行程序,這樣做是因為有時候DOM修改還沒有生效,如果數據過多,進入假死狀態,用戶以為真死機了
	//給程序一秒中的反應時間
	setTimeout("__run()",1000);
}
 
//主要查詢程序就是它啦
var __run=function(){
	//獲取各個Select的值
	__ws=document.getElementById("_ws").value;
	__hz=document.getElementById("_hz").value;
	__lx=document.getElementById("_lx").value;
	__j="";
	for(i=1;i<rs .length;i++){
		//設置輸出HTML
		var _isok="<li>"+rs[i][0]+"."+rs[i][1]+"";
		//只有不符合一下條件的才是符合我們要篩選的結果
		//雖然只有一個if,大家可以仔細看看,包含了十幾種情況
		if(__ws!="all"&&__ws!=rs[i][2]||__hz!="all"&&__hz!=rs[i][1]||__lx!="all"&&__lx!=rs[i][3])
			_isok="";
		else
			//如果符合條件,符合條件的結果數加一
			__rscount++;
		//將判讀結果附加到__j
		__j+=_isok;
	}
	if(__j=="")
		//如果__j沒有改變,說明沒有符合的條件記錄
		__res.innerHTML="<p>沒有找到任何記錄</p>";
	else
		//輸出符合條件的記錄數及篩選結果
		__res.innerHTML="<p class=c>共找到"+__rscount+"條記錄。</p>"+__j;
	__res.style.background="#0F0";
	__res.style.color="#000";
	//修改運行狀態為未運行
	__isrun=0;
	//修改符合條件記錄數為0,供下次查詢使用
	__rscount=0;
}
var __sorry=function(t){
	alert(t);
}
</rs></script>
<style type="text/css">
div{width:800px;background:#CCC;border:solid 2px #666;margin-top:10px;padding:10px;}
div p.c{color:#F00;background:#FF0;border:solid #333 2px;padding:5px;}
</style>
</head>
<body>
<div>
按長度篩選:
<select id="_ws">
	<option value="all">不區分長度</option>
	<option value="1">1</option>
	<option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
	<option value="6">6</option>
	<option value="7">7</option>
	<option value="8">8</option>
</select>
按類型篩選:
<select id="_lx">
	<option value="all">不區分類型</option>
	<option value="字母">字母(abc.com)</option>
	<option value="數字">數字(123.com)</option>
	<option value="雜交">雜交(f8.com)</option>
</select>
按后綴篩選:
<select id="_hz">
	<option value="all">不區分后綴</option>
	<option value="org">org</option>
	<option value="com">com</option>
	<option value="net">net</option>
	<option value="cn">cn</option>
</select>
<input type="button" onclick="__mqy();" value="立即篩選" />
</div>
<div id="__res">
	吳哥哥,你在上邊選擇你的條件
</div>
</body>
</html>

網頁寫好了,接下來要做的就是讓vbscript腳本讀取當前目錄中所有的txt文件,來生成html
代碼如下(附件包中的js.vbs):

'域名統計程序,生成html結果
'通過VBS獲取當前目錄,替代ASP中的Server.Mappath
Function Mappath(v)
 Mappath=fso.getAbsolutePathName(v)
End Function
 
'寫得一個函數,用于判斷字符串中是否含有數字。
Function iszajiao(v)
	for i=1 to len(v)
		if isnumeric(mid(v,i,1)) then
			iszajiao=1
			exit for
		end if
	next
End Function
 
'創建一個FSO對象
Set fso=CreateObject("Scripting.FileSystemObject")
 
'判斷是否有生成的結果ok.html,如果有,則刪除
if fso.fileexists(mappath("ok.html")) then fso.getfile(mappath("ok.html")).delete
 
'創建一個ok.html
set fto=fso.createtextfile(mappath("ok.html"),2)
wscript.echo "吳哥哥,請稍等,我正在為您工作中。。。" 
scrt="<html><head><title>運行結果</title><meta http-equiv='Content-Type' content='t"
scrt=scrt+"ext/html; charset=gb2312' /><script type='text/javascript'>"
fto.writeline scrt
fto.writeline "var rs=new Array();"
 
'尋找當前目錄中的所有txt文件,如果有則依次打開
for each file in fso.getfolder(mappath(".")).files
	if Lcase(fso.getExtensionName(file))="txt" then
		set db=fso.opentextfile(file,1)
 
		'如果不是在txt文件的結尾,則循環讀取
		do while not db.atendofstream
			rs=db.readline
 
			'獲取域名的位數,即第一次出現.的位置-1
			ws=cint(instr(rs,".")-1)
 
			'防止本行數據為空行
			if ws>=1 then
				rsi=rsi+1
 
				'獲取域名
				ym=left(rs,ws)
				if wss="" then wss=ws
				for each wsi in split(wss,"|")
					if cint(wsi)=ws then
						wsu=cint(ws)
						exit for
					end if
				next
				if wsu<>ws then
					wss=wss&"|"&ws
				end if
 
				'獲取域名后綴
				hz=replace(rs,ym&".","")
				if hzs="" then hzs=hz
				for each hzi in split(hzs,"|")
					if hzi=hz then
						hzu=hz
						exit for
					end if
				next
				if hzu<>hz then
					hzs=hzs&"|"&hz
				end if
 
				'分析域名類型,如果ym為數字則為數字
				if isnumeric(ym) then
					lx="數字"
				'否則,如果出現數字則為雜交
				elseif iszajiao(ym)=1 then
					lx="雜交"
				'其他類型就剩下字母了
				else
					lx="字母"
				end if
				fto.writeline "rs["&rsi&"]=Array('"&ym&"','"&hz&"',"&ws&",'"&lx&"');"
			end if
		loop
	end if
next
scrt="</script><script type='text/javascript'>var __res,__lx,__ws,__hz,__j,__isrun,"
scrt=scrt+"__rscount=0;var __mqy=function(){if(__isrun==1)return eval(__sorry('還在"
scrt=scrt+"運算中,你想累死你的愛機?'));else __isrun=1;var __mm=confirm('吳哥哥,你"
scrt=scrt+"確定請我吃MM嗎?');if(__mm==false)return eval(__sorry('好,你不請我吃,那"
scrt=scrt+"我不工作了'));if(typeof(__res)!='object')__res=document.getElementById('__"
scrt=scrt+"res');__res.style.background='#FF0';__res.style.color='#F00';__res.innerHTM"
scrt=scrt+"L='<p>謝謝吳哥哥請我吃MM,正在生成中,請稍后。。。</p><p>因為數據過多,程序"
scrt=scrt+"可能執行有點慢,請耐心等候</p>';setTimeout('__run()',1000);};var __run=funct"
scrt=scrt+"ion(){__ws=document.getElementById('_ws').value;__hz=document.getElementById"
scrt=scrt+"('_hz').value;__lx=document.getElementById('_lx').value;__j='';for(i=1;i<rs ."
scrt=scrt+"length;i++){var _isok='<li>'+rs[i][0]+'.'+rs[i][1]+'';if(__ws!='all'&&__"
scrt=scrt+"ws!=rs[i][2]||__hz!='all'&&__hz!=rs[i][1]||__lx!='all'&&__lx!=rs[i][3])_isok=''"
scrt=scrt+";else __rscount++;__j+=_isok;}if(__j=='')__res.innerHTML='<p>沒有找到任何記錄< "
scrt=scrt+"/p>';else __res.innerHTML='</p><p class=c>共找到'+__rscount+'條記錄。</p>'+__j;__res"
scrt=scrt+".style.background='#0F0';__res.style.color='#000';__isrun=0;__rscount=0;};var __so"
scrt=scrt+"rry=function(t){alert(t);}</rs></script><style type='text/css'>div{width:800px;backgroun"
scrt=scrt+"d:#CCC;border:solid 2px #666;margin-top:10px;padding:10px;}div p.c{color:#F00;backg"
scrt=scrt+"round:#FF0;border:solid #333 2px;padding:5px;}</style></head><body><div>按長度篩選:"
scrt=scrt+"<select id='_ws'><option value='all'>不區分長度</option>"
fto.writeline scrt
scrt=""
for each wsi in split(wss,"|")
	fto.writeline "<option value='"&wsi&"'>"&wsi&"</option>"
next
scrt="</select> 按類型篩選<select id='_lx'><option value='all'> 不區分類型</option><option valu"
scrt=scrt+"e='字母'>字母(abc.com)</option><option value='數字'>數字(123.com)</option><option "
scrt=scrt+"value='雜交'>雜交(f8.com)</option></select> 按后綴篩選<select id='_hz'><option value"
scrt=scrt+"='all'>不區分后綴</option>"
fto.writeline scrt
scrt=""
for each hzi in split(hzs,"|")
	fto.writeline "<option value='"&hzi&"'>"&hzi&"</option>"
next
scrt="</select><input type='button' onclick='__mqy();' value='立即篩選' /></div><div id='__res'>"
scrt=scrt+"吳哥哥,你在上邊選擇你的條</div></body></html>"
fto.writeline scrt
fto.close
set fto=nothing
msgbox "吳哥哥,我幫你完成工作了,怎么謝我呢?請我吃MM吧"

忙了大半個晚上終于搞定了。哈哈,啟源果然是天才(YY一下)。

本程序可以智能的讀取程序所在目錄中的所有txt文件,數據格式為每行一個域名。

現在cn域名續費漲價了,如果你手上也有很多域名,不妨用本程序來篩選一下,我已經打包成rar文件,供大家下載。
下載地址:http://www.okfdzs1809.com/products/yuming-tj-to-excel-html-xls.rar

轉帖請注明出處:域名統計篩選程序,生成Excel文件(.xls)或HTML網頁文件(.html)(http://www.okfdzs1809.com/p/yuming-tj-to-excel-html-xls)

揭開Javascript對象神秘的面紗

學習Javascript快四年了。因為最初是從實踐開始學的,真正系統的學習到了06年才開始。雖然學的時間夠長了,曾經經歷過兩次瓶頸,第一次就是JS的對象。在初級教程中,JavaScript創建對象的方法基本上都是function,而且網網一帶而過。所以如果只是買一本Javascript入門書開始學習JavaScript很容易遇到瓶頸。今天我寫這篇文章,算是幫幫比我還菜的菜鳥,快速掌握Javscript創建對象的方法吧。
首先來介紹一下在Javascript書籍上最常見的一中方式function方式
function 對象名() {
this.變量1=變量1的值;
this.變量2=變量2的值;
this.函數1= function() {
函數體
};
this.函數2= function() {
函數體
};
……;
}
說明:
(1)其內的變量或者函數前必需寫上this關鍵字;
(2)對象的內容與值以等號分隔,成對出現;
(3)包含的變量或者函數之間以分號分隔。
(4)函數需要寫在function(){}的大括號之內。
例子:

function miaoqiyuan() {
	this.name="苗啟源";
	this.nickname="飛貓,mqycn";
	this.homeurl=function() {
		alert("http://www.okfdzs1809.com");
	};
	this.gohome=function() {
		location.href="http://www.okfdzs1809.com";
	}
}

第二種:JSON方式
var 對象名 = {
變量1: 變量1的值,
變量2: 變量2的值,
函數1: function(){
函數體
},
函數2: function(){
函數體
},
……
};
說明:
(1)大括號內直接填寫變量或者函數;
(2)對象的內容與值以冒號分隔,成對出現;
(3)包含的變量或者函數之間以逗號分隔;
(4)函數需要寫在function(){}的大括號之內。
例子:

var miaoqiyuan = {
	name:"苗啟源",
	nickname:"飛貓,mqycn",
	homeurl: function() {
		alert("http://www.okfdzs1809.com");
	},
	gohome: function() {
		location.href="http://www.okfdzs1809.com";
	}
};

第三種:原型方式
var 對象名 = {};
對象名.prototype.變量1=變量1的值;
對象名.prototype.變量2=變量2的值;
對象名.prototype.函數1= function() {
函數體
};
對象名.prototype.函數2= function() {
函數體
};
……;
說明:
(1)初始對象體內可以不定義任何東西;
(2)在要定義的變量前加“對象名.prototype.”的格式;
(3)對象的內容與值以等號分隔,成對出現;
(4)包含的變量或者函數之間以分號分隔,也可以省去分號。
(5)函數需要寫在function(){}的大括號之內。

例子:

var data = {};
	data.prototype.name ="苗啟源";
	data.prototype.nickname ="mqycn,飛貓";
	data.prototype.homeurl = function() {
		alert("http://www.okfdzs1809.com");
	};
	data.prototype.gohome= function() {
		location.href="http://www.okfdzs1809.com";
	};

第四種為create方式,該方式利用了Prototype JavaScript組件庫,很少見有人用。
var 對象名 = Class.create();
Object.extend(對象名.prototype, {
變量1: 變量1的值,
變量1: 變量1的值,
函數1: function() {
函數體
},
函數2: function() {
函數體
},
……
}
);
說明:
(1)對象的創建使用了Prototype庫中的Class.create()函數;
(2)對象的內容使用Prototype庫中的Object.extend()函數來擴展;
(3)被擴展的對象在傳入Object.extend函數時一定要帶上prototype,
(4)擴展內容被大括號包含,其內與JSON方式的定義格式完全相同。
例子:

var data = Class.create();
Object.extend(dta.prototype, {
	name:"苗啟源",
	nickname:"飛貓,mqycn",
	homeurl: function() {
		alert("http://www.okfdzs1809.com");
	},
	gohome: function() {
		location.href="http://www.okfdzs1809.com";
	}
});

通過上面的四種方法就可以定義對象了,使用對象的方法比較簡單了:
var flycat = new miaoqiyuan();
這樣就創建了一個名為flycat的對象。
創建了對象,引用的方法有兩種,點號方式引用、數組方式引用。
這就很簡單了,flycat[“name”],flycat.name。
我學Javscript是從實踐開始的,沒有系統的學過。有些定義可能叫的不是很準確。歡迎大家與我討論。本文的原始地址為:http://www.okfdzs1809.com/p/javascript-object