举国欢庆放假的时候,再散分散代码 ★HostEditor★ 梅雪香
<html>
<head>
<meta http-equiv= "content-type " content= "text/html; charset=UTF-8 "/>
<title> Hosts Editor - 梅雪香 </title>
<hta:application ID= "oHTA " applicationame= "myApp " border= "thin " scroll= "no " singleinstance= "yes " maximizeButton= "no "
> <!-- ICON= "http://meixx.go1.icpcn.com/01.ico " -->
<style type= "text/css ">
<!--
body{margin:0px;overflow:hidden;background-color:#B3C1D2;font-size:12px; }
button{margin-left:5px;border:0px;background-color:#99CC00 }
#divMain{ position:relative;height:550px;overflow:auto;margin-top:5px;}
#divMain .div{padding-left:4px;margin-bottom:2px;height:22px;border:1px solid #B3C1D2;}
#divMain div span{border:1px solid #9EADBF;}
#divMain div a{margin-left:2px;color:red;}
#divMain div input{border:1px solid #9EADBF;margin-left:2px;margin-right:2px;background-color:#D6E1EE;color:#2A333A;}
#divMain div .chk{width:22px;height:100%;}
#divMain div .IP{width:100px;}
#divMain div .domain{width:150px;}
#divMain div .comment{width:420px;}
#divBottom{height:25px;text-align:right;}
#divHead { height:20px;padding-left:5px;}
#divHead span{text-align:center;font-size:12px;font-weight:bold; background-color: #c3c3c3;margin-right:4px;background-color: #c3c3c3;height:100%;}
.sp1{width:22px; margin-left:2px;}
.sp2{width:100px;cursor:pointer;}
.sp3{width:150px;cursor:pointer;}
.sp4{width:420px;}
#fPath{display:none}
#divBottom button{ border:1px solid #9EADBF; background-color:#B3C1D2;font-size:12px; width:60px; height:26px;background-color:#AABCCE; color: #3E3E3E}
#divBottom a{ margin-left:20px; margin-right:5px; position:relative;}
#divBottom .left{ position:absolute; left:0px; margin-left:10px;}
#divBottom .right{ position:absolute; right:0px; }
#divBottom .fgf{ margin-left:5px;margin-right:2px;color:#9EADBF;font-size:15px; }
.split{height:1px;margin-left:10px;margin-right:10px;border:1px inset #9EADBF; margin-top:0px;margin-bottom:0px; }
#divContent{display:none; position:absolute; width:100%; height:548px; top:0px; left:0px; ;z-index:999;}
#taContent{width:100%;height:100%;overflow:auto;padding-left:20px;border:0px;}
#divHelp{display:none;width:100%;height:100%;position:absolute;top:0px;left:0px;margin:0px;padding:5px;background-color:#FFFFFF;overflow:auto;}
#lnkHelp{position:absolute; top:1px; right:20px;}
-->
</style>
<script type= "text/javascript "> <!--
function $(id){ return document.getElementById(id);}
String.prototype.frmWithSpace=function(n){ return (this+ " ").substring(0,n); }
String.prototype.trim=function(){ return this.replace(/(^(\s| )+)|((\s| )+$)/g, " "); }
Array.prototype.foreach=function(f){ for(var i=0,l=this.length;i <l;i++) f(this,i); }
//初始化全局变量
function initGvar(){
window.gvar= {winwidth:810,winheight:634,scrnwidth:screen.availWidth,scrnheight:screen.availHeight};
//hosts文件地址,一般为:X:\\windows\\system32\\drivers\\etc\\hosts
gvar.fso = new ActiveXObject( "Scripting.FileSystemObject ");
gvar.hostpath = "C:\\WINDOWS\\system32\\drivers\\etc\\hosts ";
//缓存路径,因机而异
gvar.cachepath= "C:\\Documents and Settings\\ryanzhao\\Local Settings\\Temp\\Temporary Internet Files "
gvar.text = " ";
gvar.divRules = [];
gvar.isEverSaved = false;
gvar.arr = [];
gvar.div = (function(){
var d=document.createElement( "DIV ");
d.className = "div ";
d.innerHTML = ' <input type= "checkbox " hidefocus= "true " class= "chk " [onproperty]> <input type= "text " class= "IP " title= "IP地址 " [onproperty]> <input type= "text " class= "domain " title= "域名 " [onproperty]> <input type= "text " class= "comment " title= "注释 " [onproperty]> <span title= "删除 "> <a href= "javascript:void(0) " onclick= "delHostRule(this.parentNode.parentNode) " class= "link "> X <\/a> </span> <span title= "复制此行 "> <a href= "javascript:void(0) " onclick= "copyRule(this.parentNode.parentNode) " class= "link "> C <\/a> </span> <span title= "打开当前域名 "> <a href= "javascript:void(0) " target= "_blank " onclick= "openDomain(this.parentNode.parentNode) " class= "link "> O <\/a> </span> ';
return d;
})();
}
//保存文件
function save(){
try{
wrFile(gvar.arr.join( "%split% ").split(/%split%/).join( "\r\n "));
}catch(e){
alert( "保存文件\n " + gvar.hostpath + "\n失败!\n请检查文件是否为只读属性 ");
window.location.reload();
}
}
function wrFile(s){
var ts = gvar.fso.OpenTextFile(gvar.hostpath, 2);
//删除空行并写入文件
ts.write( s );
ts.close();
}
//从div中读取host规则
function getText(div){
var is = div.getElementsByTagName( "input ");
for(var i=0,l=is.length;i <l;i++){
var ip = is[1].value.trim(),domain=is[2].value.trim(),comment=is[3].value.trim();
if(ip == " " || domain == " "){ div.style.backgroundColor= "red "; setTimeout(function(){div.style.backgroundColor= " "},3000); return "#该行数据非法 "; }
var n = Math.ceil(domain.length/10)*10;
return ((is[0].checked? "# ": " ") + ip.frmWithSpace(is[0].checked?19:20)
+ domain.frmWithSpace(n <20?20:n) + (comment== " "? " ":( "# "+comment))).trim();
}
}
function saveHostsFile(){
var e = window.event;
var src = e.srcElement;
//alert(e.type);
if(e.type == "click "){//删除一行规则的时候
save();
}else if ((e.propertyName == "value " || e.propertyName == "checked ")){//有规则被修改的时候
var div = src.parentNode;
var idx = parseInt(div.getAttribute( "idx "),10);
gvar.arr[idx] = getText(div);
//alert(gvar.arr[idx]);
save();
}else{
}
}
function initDom(){
var ar = gvar.arr;
var strMouse = ' onmouseover= "this.focus();this.select(); " onmouseout= " " ';
var strProperty = ' onpropertychange= "saveHostsFile() " ';
function f(a,i){
var s = a[i] = a[i].trim();
if(/^#?\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\S+)\s*(#(.*))?/.test(s)){
var div = gvar.div.cloneNode(true);
div.onmouseover=function(){this.style.border = "1px solid #97A7BB ";};
div.onmouseout =function(){this.style.border = "1px solid #B3C1D2 ";};
div.setAttribute( "idx ",i);
ns.divMain.appendChild(div);
var values = [(s.charAt(0)== "# "? 'checked ': " "), 'value= " '+RegExp.$1+ ' " ', 'value= " '+RegExp.$2+ ' " ', 'value= " '+RegExp.$4+ ' " '];
var reps = [values[0]+strProperty,values[1]+strMouse+strProperty,values[2]+strMouse+strProperty,values[3]+strMouse+strProperty];
var k=0;
div.innerHTML = div.innerHTML.replace(/\[onproperty\]/g,function(){return reps[k++]});
gvar.divRules.push(div);
}else if(/^#/.test(s)||s== " "){}
else{
//出现非法数据
alert( "第 "+(i+1)+ " 行数据非法: " + s);
}
}
ar.foreach(f);
}
function initwindow(){
window.resizeTo(810,634);
//window.moveTo((gvar.scrnwidth - gvar.winwidth)/2,(gvar.scrnheight - gvar.winheight)/2); //居中
//window.moveTo((gvar.scrnwidth - gvar.winwidth),(gvar.scrnheight - gvar.winheight)); //右下
//window.moveTo((gvar.scrnwidth - gvar.winwidth)/2,(gvar.scrnheight - gvar.winheight)); //中下
window.moveTo((gvar.scrnwidth - gvar.winwidth)/2,(gvar.scrnheight - gvar.winheight-26)); //中下
}
function getElementRef(){
window.ns= {};
var ids = [ "divTop ", "divHelp ", "divMain ", "divBottom ", "fPath ", "btnClearCache ", "btnShowView ", "btnClose ", "chkCache ", "chkComment ", "divContent ", "taContent ", "btnSave ", "spIP ", "spDomain "];
ids.foreach(function(a,i){ns[a[i]] = $(a[i]);});
}
[解决办法]
同乐,jf
[解决办法]
jf,仔细看看@_@
[解决办法]
好长,先占个位子
[解决办法]
接点分好休假! ^_^
[解决办法]
小梅最近写HTA程序比较多啊。
顶+学习
[解决办法]
支持,这个hta是什么文件格式,以前没见过 ,请教?
[解决办法]
先接分再看
[解决办法]
学习了 jf
[解决办法]
hta格式到google搜一下就知道了
学习ing
[解决办法]
hta不懂
来看看
顺便接分
顺便祝大家和自己长假快乐!
[解决办法]
学习ing
[解决办法]
学习中,thanks
[解决办法]
学习中,thanks
[解决办法]
貌似很醒目的飘过的说。。
[解决办法]
牛人就是牛人~~
[解决办法]
学习,接分
[解决办法]
好长.够我看的了.....
[解决办法]
一个字 强
[解决办法]
这段代码是干嘛用的,小梅?是男的女的?
[解决办法]
强啊,学习中!
[解决办法]
接点
休假
大家国庆快乐.
^_^
[解决办法]
好早前写过..
[解决办法]
好像得转到view里才能插入一条新的host记录啊...
[解决办法]
jf
[解决办法]
先看這段程式是做麼子用的
[解决办法]
牛人,真的厉害,不过也只有做成hta格式才能实现这些吗?
---------------------------------------------
XPaint:专业的WEB图象处理(http://www.crossgo.com)
[解决办法]
梅雪香MM,你在深圳哪里?我也在深圳,在布吉
[解决办法]
被 CSDN 的语法分析模块改过了很多地方,所以好些脚本等都运行不起来了。
[解决办法]
木马
[解决办法]
不懂,up
[解决办法]
把代码放到你的资源里吧.做一个文本,我们可以那样下载到全部代码
这样看不到效果的.
[解决办法]
学习
[解决办法]
学习+接分~~~~ ^O^
[解决办法]
学习中,在接点分,谢谢!
[解决办法]
我编辑后在62行处出错 错误原因缺少";"
编码是不是改成gb2312好些 ?
[解决办法]
JS版的好活跃啊..
[解决办法]
谢谢````
[解决办法]
我正考虑做个那
[解决办法]
学习中,在接点分
[解决办法]
搞毛,这么长的代码!
[解决办法]
hta和普通的WEB页有什么区别。。。
------解决方案--------------------
打個包讓人下載吧
[解决办法]
很喜欢hta,先接分^_^
[解决办法]
留名,收藏,接分!
[解决办法]
学习接分。
[解决办法]
小梅 太让我失望了 你和大梅的差距实在是太大了
[解决办法]
study
[解决办法]
学习 接分 顺便问下 这是啥玩意啊 ? 有啥用啊 ??? 怎么运行啊 ???
[解决办法]
yun
[解决办法]
叹一个 07 年的帖子现在还在冒泡!!! 。。。。。。。。。。。。。。。。。
[解决办法]