源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

超简陋浏览器

  • 时间:2022-01-16 03:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:超简陋浏览器
可是那些破站点让人太郁闷了...不是弹出广告,就是满屏幕飘浮动广告....气死我了... 所以做了一个超简陋的浏览器,把页面中的 JS 基本上全禁掉了(禁用JS的正则不是很好,此外CSS里的没禁掉,不过目前反正够俺用就好了),顺便把 iframe 也全部干掉 还可以自动记得上次浏览的页面,打开就直接进入,看书的时候就不怕打断了 因为超简陋,所以连 表单也不支持,只支持链接,哈哈,看书倒是够用了.... 代码中的 伪session 处理 和 俺自己封装的 xmlhttp 值得一看 不能直接运行,保存到本地,另存为 HTA 使用,哈哈
[u]复制代码[/u] 代码如下:
<head> <title>Book Viewer</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <style> body { margin:0px; padding:0px; overflow:auto; border-style:none; font-size:12px; background-color:buttonface; } iframe { width:100%; border-style:none; position:absolute; top:25px; } #i1 { height:22px; line-height:18px; width:100%; border:1px solid #666; margin:0px 2px; padding:0px 10px; } </style> <script> strSessionName="bookviewer_lastURL"; lastURL=""; xp=new xmlhttp(); function checkMe(){     if(i1.value!=lastURL){         lastURL=i1.value;         session_set(strSessionName,lastURL);     }     try{         for(var i=0;i<f1.document.links.length;i++)f1.document.links[i].onclick=n0;     }catch(e){}     if(/book\.5seecn/i.test(lastURL))f1.document.body.onkeydown=chkKey; } function chkKey(){     var allLinks;     if(f1.event.keyCode==39){         allLinks=f1.document.links;         for(var i=0;i<allLinks.length;i++)if(/下一页/.test(allLinks[i].innerHTML)){             i1.value=allLinks[i].href; n2(); return;         }     }else if(f1.event.keyCode==37){         allLinks=f1.document.links;         for(var i=0;i<allLinks.length;i++)if(/上一页/.test(allLinks[i].innerHTML)){             i1.value=allLinks[i].href; n2(); return;         }     } } function init(){     i1.onkeydown=function(){ if(event.keyCode==13)n2(); }     resizeWin();     i1.focus();     i1.select();     if(session_exists(strSessionName)){ i1.value=session_get(strSessionName); n2(); }     setInterval(checkMe,200); } function resizeWin(){     document.getElementById("f1").style.height=document.body.clientHeight-25; } function n0(){     n1(this.href);     return(false); } function n1(str){     i1.value=str;     n2(); } function n2(){     str=i1.value;     if(i1=="")return;     if(!/^http:\/\//i.test(str))str="http://"+str;     document.title="Book Viewer - Loading...";     xp.open("get",str);     xp.onreadystatechange=n22;     xp.send(""); } function n22(){     var str;     if(this.readyState==4){         if(this.status==200){             str=adodb_binary2string(this.getAttribute("responseBody"));             str=str.replace(/<script[\s\S]+?\/script>/gi,"").replace(/<iframe[\s\S]+?\/iframe>/gi,"").replace(/on(load|mouseover|mouseout|mousemove|focus|blur|keydown|keyup|keypress|change|readystatechange|click|dblclick|mousewheel) *= *\"[\s\S]+?\"/gi,"");             f1.document.open();             f1.document.write("<base href=\""+i1.value.substring(0,i1.value.lastIndexOf("/")+1)+"\" \/>");             try{                 f1.document.write(str);             }catch(e){}             f1.document.close();             f1.document.body.focus();             document.title="Book Viewer - Ready";         }     } } function cancelErr(){ return(true); } html_encode=function(strV){     return(strV.replace(/&/g,"&").replace(/"/g,""").replace(/ /g," ").replace(/\t/g,"    ").replace(/</g,"<").replace(/>/g,">").replace(/\r\n/g,"<br>")); } function adodb_binary2string(b){     var adodbStream=new ActiveXObject("ADODB.Stream");      adodbStream.Type=1;//1=adTypeBinary     adodbStream.Open();     adodbStream.write(b);     adodbStream.position=0;     adodbStream.Type=2;     adodbStream.charset="_autodetect_all";     var re=adodbStream.readText();     adodbStream=null;     return(re); } function session_delete(strName){     var str, reg, expt, dt;     if(!session_exists(strName))return;     strName=escape(strName);     strValue="";     dt=new Date();     dt.setYear(1980);     expt=";expires="+dt.toGMTString()+";";     str=strName+"="+strValue+expt;     document.cookie=str; } function session_get(strName){     var str, reg;     str=document.cookie;     strName=escape(strName);     reg=new RegExp(strName+"=([^;]+)");     if(!reg.test(str))return;     return(unescape(str.match(reg)[1])); } function session_set(strName,strValue,blnExpireAfterClose){     var str, reg, expt, dt;     strName=escape(strName);     strValue=escape(strValue);     dt=new Date();     dt.setYear(2099);     expt=blnExpireAfterClose?"":";expires="+dt.toGMTString()+";";     str=strName+"="+strValue+expt;     document.cookie=str; } function session_exists(strName){     var str, reg;     str=document.cookie;     strName=escape(strName);     reg=new RegExp(strName+"=(.+);?");     if(!reg.test(str)){return(false);}else{return(true);} } function xmlhttp(){     // declare all the private variable     var aryArgu, aryOnPropertyChange_AttachedEvents, aryRequestHeaders, blnAsyn, objRequest, objSelf, objThat, strMethod, strProtocol, strToBeSend, strUID, strUrl;     // declare all the private functions     var defaultEvent_onreadystatechange, getXMLRequester, init, realEvent_onreadystatechange, uid;          // declare public variable     this.blnSendDefaultHeader=false;     this.readyState=0;     this.responseText="";     this.responseXML="";     this.status=-1;     // public event     this.onreadystatechange=defaultEvent_onreadystatechange;     // public method     this.attachEvent=function(eventHandle,functionHandle){         var eventHandle=String(eventHandle).toLowerCase();         switch(eventHandle){             case "onreadystatechange":                 if(this.onreadystatechange!=defaultEvent_onreadystatechange){                     this.onreadystatechange=defaultEvent_onreadystatechange;                     aryOnPropertyChange_AttachedEvents=new Array();                 }                 aryOnPropertyChange_AttachedEvents.push(functionHandle);                 return(true);             break;             default:                 return("Not reallized yet.");             break;         }     }     this.deleteRequestHeader=function(strName){         delete aryRequestHeaders[strName];     }     this.detachEvent=function(eventHandle,functionHandle){         var eventHandle=String(eventHandle).toLowerCase();         switch(eventHandle){             case "onreadystatechange":                 if(this.onreadystatechange!=defaultEvent_onreadystatechange){                     this.onreadystatechange=defaultEvent_onreadystatechange;                     aryOnPropertyChange_AttachedEvents=new Array();                     return(true);                 }                 for(var i=0;i<aryOnPropertyChange_AttachedEvents.length;i++){                     if(aryOnPropertyChange_AttachedEvents[i]==functionHandle){                         aryOnPropertyChange_AttachedEvents.splice(i,1);                         break;                     }                 }                 return(true);             break;             default:                 return("Not reallized yet.");             break;         }     }     this.flush=function(){         try{ this.readyState=objRequest.readyState; }catch(e){}         try{ this.responseText=objRequest.responseText; }catch(e){}         try{ this.responseXML=objRequest.responseXML; }catch(e){}         try{ this.status=objRequest.status; }catch(e){}     }     this.getAllResponseHeaders=function(){         return(objRequest.getAllResponseHeaders());     }     this.getAttribute=function(strName,strRef){         switch(strName){             case "allHeaders":                 return(objRequest.getAllResponseHeaders());             case "asyn":                 return(blnAsyn);             case "header":                 return(objRequest.getResponseHeader(strRef));             case "method":                 return(strMethod);             case "protocol":                 return(strProtocol);             case "readyState":                 return(objRequest.readyState);             case "responseBody":                 return(objRequest.responseBody);             case "responseText":                 return(objRequest.responseText);             case "responseXML":                 return(objRequest.responseXML);             case "send": case "sendString": case "strSend":                 return(strToBeSend);             case "status":                 return(objRequest.status);             case "uid":                 return(strUID);             case "url":                 return(strUrl);             default:                 return(false);         }     }     this.getResponseHeader=function(strHeaderName){         return(objRequest.getResponseHeader(strHeaderName));     }     this.init=init;     this.open=function(method,url,asyn){         var theURL;         strMethod=String(method).toLowerCase()=="POST"?"POST":"GET";         strUrl=String(url);         blnAsyn=String(asyn).toLowerCase()=="false"?false:true;         strProtocol=strUrl.match(/http:\/\//i)?"http":"other";         theURL=strUrl         //if(strProtocol=="http")theURL=strUrl+(strUrl.indexOf(".")==-1?"\/":"")+(strUrl.indexOf("?")==-1?"?":"&")+uid()+"=true";         objRequest.open(strMethod,theURL,blnAsyn);     }     this.reset=init;     this.send=function(strSend){         strToBeSend=String(strSend);         for(var i in aryRequestHeaders){             objRequest.setRequestHeader(i,aryRequestHeaders[i]);         }         if(this.blnSendDefaultHeader){             objRequest.setRequestHeader("Content-Length",strToBeSend.length);         }         objRequest.onreadystatechange=realEvent_onreadystatechange;         objRequest.send(strToBeSend);     }     this.setRequestHeader=function(strName,strValue){         aryRequestHeaders[strName]=strValue;     }     // private functions     function defaultEvent_onreadystatechange(){}     function getXMLRequester(){         var xmlhttp_request = false;         try{             if( window.ActiveXObject ){                 for( var i = 5; i > -1; i-- ){                     try{                         if( i == 2 ){                             xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );                         }else{                             xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );                         }                         break;                     }catch(e){                         xmlhttp_request = false;                     }                 }             }else if( window.XMLHttpRequest ){                 xmlhttp_request = new XMLHttpRequest();             }         }catch(e){             xmlhttp_request = false;         }         return xmlhttp_request;     }     function init(){         // init private variable         aryArgu=new Array();         aryOnPropertyChange_AttachedEvents=new Array();         aryRequestHeaders=new Array();         blnAsyn=true;         objRequest=getXMLRequester();         objSelf=this;         objThat=this;         strMethod="GET";         strProtocol="unknown";         strResponseText="";         strToBeSend="";         strUID=strUID?strUID:uid();         strUrl="";         // init public variable         this.blnSendDefaultHeader=false;         // regist this object to window         window[strUID]=this;     }     function realEvent_onreadystatechange(){         objThat.flush();         if(objThat.onreadystatechange==defaultEvent_onreadystatechange){             for(var i=0;i<aryOnPropertyChange_AttachedEvents.length;i++){                 try{                     if(typeof(aryOnPropertyChange_AttachedEvents[i])=="function"){                         aryOnPropertyChange_AttachedEvents[i].call(objThat);                     }else if(typeof(aryOnPropertyChange_AttachedEvents[i])=="string"){                         eval(aryOnPropertyChange_AttachedEvents[i]);                     }                 }catch(e){alert("004"+e.description)}             }         }else{             try{                 if(typeof(objThat.onreadystatechange)=="function"){                     objThat.onreadystatechange();                 }else if(typeof(objThat.onreadystatechange)=="string"){                     eval(objThat.onreadystatechange);                 }             }catch(e){alert("005"+e.description)}         }     }     function uid(){         return("u"+(new Date()).getTime().toString(35)+parseInt(Math.random()*999999).toString(35));     }          // do init     this.init(); } window.onload=init; window.onresize=resizeWin; window.onerror=cancelErr; </script> </head> <body> <input id="i1"><br> <iframe id="f1"></iframe> </body>    
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部