超简陋浏览器

2023-12-08 0 678

可是那些破站点让人太郁闷了…不是弹出广告,就是满屏幕飘浮动广告….气死我了… 所以做了一个超简陋的浏览器,把页面中的JS基本上全禁掉了(禁用JS的正则不是很好,此外CSS里的没禁掉,不过目前反正够俺用就好了),顺便把iframe也全部干掉 还可以自动记得上次浏览的页面,打开就直接进入,看书的时候就不怕打断了 因为超简陋,所以连表单也不支持,只支持链接,哈哈,看书倒是够用了…. 代码中的伪session处理和俺自己封装的xmlhttp值得一看 不能直接运行,保存到本地,另存为HTA使用,哈哈 复制代码 代码如下:<head> <title>BookViewer</title> <metahttp-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:1pxsolid#666;margin:0px2px;padding:0px10px;} </style> <script> strSessionName=\”bookviewer_lastURL\”; lastURL=\”\”; xp=newxmlhttp(); functioncheckMe(){ if(i1.value!=lastURL){ lastURL=i1.value; session_set(strSessionName,lastURL); } try{ for(vari=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; } functionchkKey(){ varallLinks; if(f1.event.keyCode==39){ allLinks=f1.document.links; for(vari=0;i<allLinks.length;i++)if(/下一页/.test(allLinks[i].innerHTML)){ i1.value=allLinks[i].href;n2();return; } }elseif(f1.event.keyCode==37){ allLinks=f1.document.links; for(vari=0;i<allLinks.length;i++)if(/上一页/.test(allLinks[i].innerHTML)){ i1.value=allLinks[i].href;n2();return; } } } functioninit(){ 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); } functionresizeWin(){ document.getElementById(\”f1\”).style.height=document.body.clientHeight-25; } functionn0(){ n1(this.href); return(false); } functionn1(str){ i1.value=str; n2(); } functionn2(){ str=i1.value; if(i1==\”\”)return; if(!/^http:\\/\\//i.test(str))str=\”http://\”+str; document.title=\”BookViewer-Loading…\”; xp.open(\”get\”,str); xp.onreadystatechange=n22; xp.send(\”\”); } functionn22(){ varstr; 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(\”<basehref=\\\”\”+i1.value.substring(0,i1.value.lastIndexOf(\”/\”)+1)+\”\\\”\\/>\”); try{ f1.document.write(str); }catch(e){} f1.document.close(); f1.document.body.focus(); document.title=\”BookViewer-Ready\”; } } } functioncancelErr(){return(true);} html_encode=function(strV){ return(strV.replace(/&/g,\”&amp;\”).replace(/\”/g,\”&quot;\”).replace(//g,\”&nbsp;\”).replace(/\\t/g,\”&nbsp;&nbsp;&nbsp;&nbsp;\”).replace(/</g,\”&lt;\”).replace(/>/g,\”&gt;\”).replace(/\\r\\n/g,\”<br>\”)); } functionadodb_binary2string(b){ varadodbStream=newActiveXObject(\”ADODB.Stream\”); adodbStream.Type=1;//1=adTypeBinary adodbStream.Open(); adodbStream.write(b); adodbStream.position=0; adodbStream.Type=2; adodbStream.charset=\”_autodetect_all\”; varre=adodbStream.readText(); adodbStream=null; return(re); } functionsession_delete(strName){ varstr,reg,expt,dt; if(!session_exists(strName))return; strName=escape(strName); strValue=\”\”; dt=newDate(); dt.setYear(1980); expt=\”;expires=\”+dt.toGMTString()+\”;\”; str=strName+\”=\”+strValue+expt; document.cookie=str; } functionsession_get(strName){ varstr,reg; str=document.cookie; strName=escape(strName); reg=newRegExp(strName+\”=([^;]+)\”); if(!reg.test(str))return; return(unescape(str.match(reg)[1])); } functionsession_set(strName,strValue,blnExpireAfterClose){ varstr,reg,expt,dt; strName=escape(strName); strValue=escape(strValue); dt=newDate(); dt.setYear(2099); expt=blnExpireAfterClose?\”\”:\”;expires=\”+dt.toGMTString()+\”;\”; str=strName+\”=\”+strValue+expt; document.cookie=str; } functionsession_exists(strName){ varstr,reg; str=document.cookie; strName=escape(strName); reg=newRegExp(strName+\”=(.+);?\”); if(!reg.test(str)){return(false);}else{return(true);} } functionxmlhttp(){ //declarealltheprivatevariable vararyArgu,aryOnPropertyChange_AttachedEvents,aryRequestHeaders,blnAsyn,objRequest,objSelf,objThat,strMethod,strProtocol,strToBeSend,strUID,strUrl; //declarealltheprivatefunctions vardefaultEvent_onreadystatechange,getXMLRequester,init,realEvent_onreadystatechange,uid; //declarepublicvariable this.blnSendDefaultHeader=false; this.readyState=0; this.responseText=\”\”; this.responseXML=\”\”; this.status=-1; //publicevent this.onreadystatechange=defaultEvent_onreadystatechange; //publicmethod this.attachEvent=function(eventHandle,functionHandle){ vareventHandle=String(eventHandle).toLowerCase(); switch(eventHandle){ case\”onreadystatechange\”: if(this.onreadystatechange!=defaultEvent_onreadystatechange){ this.onreadystatechange=defaultEvent_onreadystatechange; aryOnPropertyChange_AttachedEvents=newArray(); } aryOnPropertyChange_AttachedEvents.push(functionHandle); return(true); break; default: return(\”Notreallizedyet.\”); break; } } this.deleteRequestHeader=function(strName){ deletearyRequestHeaders[strName]; } this.detachEvent=function(eventHandle,functionHandle){ vareventHandle=String(eventHandle).toLowerCase(); switch(eventHandle){ case\”onreadystatechange\”: if(this.onreadystatechange!=defaultEvent_onreadystatechange){ this.onreadystatechange=defaultEvent_onreadystatechange; aryOnPropertyChange_AttachedEvents=newArray(); return(true); } for(vari=0;i<aryOnPropertyChange_AttachedEvents.length;i++){ if(aryOnPropertyChange_AttachedEvents[i]==functionHandle){ aryOnPropertyChange_AttachedEvents.splice(i,1); break; } } return(true); break; default: return(\”Notreallizedyet.\”); 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){ vartheURL; 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(variinaryRequestHeaders){ 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; } //privatefunctions functiondefaultEvent_onreadystatechange(){} functiongetXMLRequester(){ varxmlhttp_request=false; try{ if(window.ActiveXObject){ for(vari=5;i>-1;i–){ try{ if(i==2){ xmlhttp_request=newActiveXObject(\”Microsoft.XMLHTTP\”); }else{ xmlhttp_request=newActiveXObject(\”Msxml2.XMLHTTP.\”+i+\”.0\”); } break; }catch(e){ xmlhttp_request=false; } } }elseif(window.XMLHttpRequest){ xmlhttp_request=newXMLHttpRequest(); } }catch(e){ xmlhttp_request=false; } returnxmlhttp_request; } functioninit(){ //initprivatevariable aryArgu=newArray(); aryOnPropertyChange_AttachedEvents=newArray(); aryRequestHeaders=newArray(); blnAsyn=true; objRequest=getXMLRequester(); objSelf=this; objThat=this; strMethod=\”GET\”; strProtocol=\”unknown\”; strResponseText=\”\”; strToBeSend=\”\”; strUID=strUID?strUID:uid(); strUrl=\”\”; //initpublicvariable this.blnSendDefaultHeader=false; //registthisobjecttowindow window[strUID]=this; } functionrealEvent_onreadystatechange(){ objThat.flush(); if(objThat.onreadystatechange==defaultEvent_onreadystatechange){ for(vari=0;i<aryOnPropertyChange_AttachedEvents.length;i++){ try{ if(typeof(aryOnPropertyChange_AttachedEvents[i])==\”function\”){ aryOnPropertyChange_AttachedEvents[i].call(objThat); }elseif(typeof(aryOnPropertyChange_AttachedEvents[i])==\”string\”){ eval(aryOnPropertyChange_AttachedEvents[i]); } }catch(e){alert(\”004\”+e.description)} } }else{ try{ if(typeof(objThat.onreadystatechange)==\”function\”){ objThat.onreadystatechange(); }elseif(typeof(objThat.onreadystatechange)==\”string\”){ eval(objThat.onreadystatechange); } }catch(e){alert(\”005\”+e.description)} } } functionuid(){ return(\”u\”+(newDate()).getTime().toString(35)+parseInt(Math.random()*999999).toString(35)); } //doinit this.init(); } window.onload=init; window.onresize=resizeWin; window.onerror=cancelErr; </script> </head> <body> <inputid=\”i1\”><br> <iframeid=\”f1\”></iframe> </body>

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 hta 超简陋浏览器 https://www.u-9.cn/jiaoben/hta/145409.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务