存档
最近公司想整理下业务,看看有什么漏掉的订单。万网,息壤的业务比较多。万网的可以导出csv,而息壤就悲剧了。好几百页,只能一条一条的复制,郁闷。受QQ云输入法的影响,将JS保存到收藏夹,点击链接执行JS,加载外部JS创建表单,通过DOM获取内容,提交到本地的数据库。剩下的就好处理了。
1、新建收藏夹项目,路径填写:
javascript:(function(){$tmp=document.createElement("script");$tmp.src=’http://192.168.99.29/_app/xirang.js’;document.getElementsByTagName("head")[0].appendChild($tmp);})();
2、本地架设好服务器,xirang.js内容如下:
(function(){
$tmp=document.createElement("div");
$tmp.innerHTML=’ <form action="http://192.168.99.29/_app/xirang.asp" style="display:none" method="post" id="__tmp_form"><textarea name="txtdb"></textarea></form>’;
document.getElementsByTagName("body")[0].appendChild($tmp);}
)();
hostlist = (function(){
_t=document.getElementsByTagName("table");
for(i=0;i<_t.length;i++){
if(_t[i].getAttribute("className") == "listtable"){
return _t[i];
}
}
return "";
})();
if(typeof(hostlist) == "object"){
__tmp_frm = document.getElementById("__tmp_form");
__tmp_frm.txtdb.value [...]
最近朋友让帮忙写个电话匹配脚本。能支持的电话有手机号,电话号码。手机号、电话区号前面均可带零。
<pre><script type="text/javascript">
var $ = {
‘blue’:'<span style=color:#090>[OK]</span>’,
‘red’:'<span style=color:#FAA>Bad.</span>’
}
var ttt = Array(
‘+86.053912345678′,
‘015854999261′,
‘15854999261′,
‘158549992161′,
‘+86.5391234567′
);
for(i=0;i<ttt.length;i++){
document.writeln(ttt[i] + "\t: " + $[(ttt[i].match(/^(\+86\.0?\d{10,11}|(015|013|15|13)\d{9})$/ig)?"blue":"red")]);
}
</script>
这个函数我觉得还是比较实用的,用于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框剪,集合了所有的功能,哈哈哈。
Test
Test
/*
文件名:set-Object.html
设计者:苗启源
功 能:可以方便的给DOM对象添加方法,可支持所有浏览器
主 页:http://www.miaoqiyuan.cn/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”);
最近,朋友要给他的客户与客户交流,涉及一些很重要的信息,通过QQ,MSN感觉很不可靠,于是请我写一个加密解密工具,防止信息在中途被截取。
解密工具直接交给客户,而交流信息通过E-mail或QQ。汗,我等小鸟怎么会那种高深的东东,实在是。。。为了朋友,赴刀山,下火海,奋斗了一个晚上,终于写出来了一个。好东西不敢分享,发出来共享给大家,高手见笑了。
原文地址为:http://miaoqiyuan.cn/p/javascript-jiami
因为朋友特别说是很重要的信息,我想到了以前学C的时候有一个把每个字符的编码读取出来加13的一个算法。正巧Javascript中有一个charCodeAt,呵呵,把要加密的内容,依次对出每个字符的字符编码,然后做一些处理,嘎嘎。。。。只要不知道算法,还是很难破解出来的,呵呵。
具体算法还是大家自己看吧,说出来就没有意思了。本文的算法与给朋友的稍微有些差别,毕竟安全第一。下面是运行界面,还是使用了我喜欢的hta文件。代码全是Javascript。
测试地址:
加密:http://www.miaoqiyuan.cn/products/js-jiami.htm
解密:http://www.miaoqiyuan.cn/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 [...]
因为周日加班,所以程序的发布计划被完全打乱,本人决定在细节上做一下修改,于元旦发布。
FlyCat(CatSeven) 美女图片程序框架完成,预计下周一即可发布。
登陆图片使用了UGUG.CN上的404错误页的背景图。
后台顶部导航条参考了139邮箱的导航。
后台仅有一个页面,所有功能都由Ajax请求,并输出结果。