亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTA > 正文

超簡(jiǎn)陋瀏覽器

2020-01-31 15:44:13
字體:
供稿:網(wǎng)友
可是那些破站點(diǎn)讓人太郁悶了...不是彈出廣告,就是滿屏幕飄浮動(dòng)廣告....氣死我了...

所以做了一個(gè)超簡(jiǎn)陋的瀏覽器,把頁面中的 JS 基本上全禁掉了(禁用JS的正則不是很好,此外CSS里的沒禁掉,不過目前反正夠俺用就好了),順便把 iframe 也全部干掉

還可以自動(dòng)記得上次瀏覽的頁面,打開就直接進(jìn)入,看書的時(shí)候就不怕打斷了

因?yàn)槌?jiǎn)陋,所以連 表單也不支持,只支持鏈接,哈哈,看書倒是夠用了....

代碼中的 偽session 處理 和 俺自己封裝的 xmlhttp 值得一看


不能直接運(yùn)行,保存到本地,另存為 HTA 使用,哈哈
復(fù)制代碼 代碼如下:

<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?"http://":"")+(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>    
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
久草手机在线视频| 91精品国产电影| 欧美一级网址| 国产草草影院ccyycom| 日本视频网址| 中文字幕日韩精品一区| 久久久久久久久亚洲精品| 亚洲91精品| 色婷婷综合五月| 922tv免费观看在线| 国产成都精品91一区二区三| 日韩一区二区精品| 狂野欧美性猛交xxxx乱大交| 成人观看网址| av色综合久久天堂av色综合在| 国产成年人在线观看| 福利精品视频在线| 男女羞羞视频教学| 污视频免费在线观看网站| 欧美色图综合网| 一区二区三区亚洲视频| 性色av免费观看| 永久免费毛片在线观看| 手机看片国产1024| 久久久久久久久99| 久久亚洲综合网| 成人婷婷网色偷偷亚洲男人的天堂| www在线免费观看视频| 美丽的姑娘在线观看免费动漫| 久久精品久久精品| 久久久精品国产亚洲| www.欧美日本韩国| 欧美日韩在线播放视频| 欧美亚洲国产一区在线观看网站| 围产精品久久久久久久| 免费看的av网站| 黑人巨大精品欧美一区免费视频| 日本一区二区乱| 日韩网站在线看片你懂的| 午夜视频99| 久久99久久99小草精品免视看| 4438x成人网最大色成网站| 欧美三级午夜理伦三级中文幕| 一区二区欧美日韩| 午夜爽爽视频| 亚洲精品永久免费视频| 色婷婷国产精品免| 亚洲国产精品激情在线观看| 国产精品免费久久久久| 日本一区二区三区高清不卡| 欧美猛男做受videos| 欧美性猛交xxxx乱大交hd| 醉酒壮男gay强迫野外xx| 黄色污污视频在线观看| 国内精品久久久久影院薰衣草| 亚洲第一福利网站| 免费高清一区二区三区| 欧美大片一区| 手机免费看av网站| 国产乱淫a∨片免费视频| 少妇一级淫片免费放中国| 四虎国产精品永久在线| 成人午夜av| 欧美视频中文字幕在线| 精品国产乱码久久久久久婷婷| 国产精品无码白浆高潮| 国产一区二区三区毛片| 99久热在线精品996热是什么| www.国产亚洲| 久久久久久久穴| 天堂视频在线观看免费| 日本午夜激情视频| 国产精品亚洲精品| 99九九久久| 超碰97av在线| 成人mm视频在线观看| 天天色 色综合| 呦视频在线一区二区三区| 欧洲成人在线视频| 久久夜色精品国产亚洲aⅴ| 午夜av一区| 欧美成年人视频在线观看| 亚洲免费一区二区| 巨大黑人极品videos精品| 日本不卡视频| 亚洲男人天堂2023| 老少交欧美另类| 国产一区二区区别| 国产精品videossex撒尿| 日韩1区2区3区| 精品欧美久久| 99在线免费观看视频| 一区二区三区的久久的视频| 国产老妇伦国产熟女老妇视频| 免费一级在线观看播放网址| 婷婷久久伊人| 一区二区三区在线视频观看| 蜜臀久久久久久久| 日韩成人av免费| 中文字幕高清不卡| 在线成人av观看| 色在线视频网| 国产三级日本三级在线播放| 成人动漫视频在线观看免费| free性亚洲| 国产一区二区三区视频| 秋霞av亚洲一区二区三| 天天爽夜夜爽一区二区三区| 亚洲精品无码久久久久久| 91av在线影院| av片免费播放| 摸摸摸bbb毛毛毛片| 久久精品久久久久久国产 免费| 99亚洲伊人久久精品影院红桃| 精品人妻少妇AV无码专区| 91成人在线视频观看| 91成人在线免费观看| 国产欧美日本在线| 国产成人精品免费看视频| 欧美高清videosex极品| heyzo在线欧美播放| 国产精品国产三级在线观看| 99精品桃花视频在线观看| 亚洲最大黄色| 白白色在线观看| 亚洲欧洲精品一区二区三区不卡| 成人午夜免费在线| 亚洲精品综合久久中文字幕| 好吊妞国产欧美日韩免费观看网站| 亚洲第一精品夜夜躁人人躁| 中文字幕在线中文| 天天综合久久综合| 欧美成人午夜免费视在线看片| 国产综合精品| 国产视频欧美| 亚洲免费三区一区二区| 免费国产阿v视频在线观看| 成熟了的熟妇毛茸茸| www.精品久久| 日韩美女国产精品| 欧美.日韩.国产.一区.二区| 亚洲最大成人在线| 超碰国产精品一区二页| 日韩欧美国产黄色| 婷婷激情四射五月天| 成年人在线观看| 一区二区不卡免费视频| 激情文学综合丁香| 一区二区亚洲精品国产| 欧美一级爽aaaaa大片| 很黄的网站在线观看| 精品香蕉一区二区三区| 一区二区国产盗摄色噜噜| 欧美三级特黄| 99电影网电视剧在线观看| 亚洲精品久久久久国产| 欧美日韩激情在线观看| 99久久精品免费看国产免费软件| 成人av免费观看| 石原莉奈在线亚洲三区| 精品一区二区三区日本| 黄网站免费看| 欧美精品在线观看一区二区| 99riav视频一区二区| 国产精品老熟女一区二区| 午夜久久久久久久久久影院| 国产奶水涨喷在线播放| 亚洲**2019国产| 乱人伦中文字幕在线zone| 青青久久av| 成人免费在线看片| 日韩精品免费在线观看| 女生影院久久| 一区二区三区四区免费| 日韩成人一区| 亚洲色图av在线| 天堂网中文在线观看| 2019天天干夜夜操| 国产成人超碰人人澡人人澡| 欧美第一黄色网| 亚洲激情 欧美| 欧美日韩亚洲一区二区三区四区| 免费污视频在线| 超薄肉色丝袜一二三| 成人福利在线| 老司机精品视频一区二区三区| 日韩手机在线视频| 久久99精品久久久久久三级| 中文字幕综合在线| 五月天男人天堂| 日日噜噜夜夜狠狠视频| 欧美一级二级三级蜜桃| 九九热精品在线播放| 日韩电影免费在线看| 一二三在线视频| 国产成人精品一区二区在线小狼| 一区二区三区国产| 婷婷久久五月天| 亚洲av无码一区二区三区观看| 自拍偷拍亚洲色图欧美| 欧美边添边摸边做边爱免费| 一区二区三区美女| 免费午夜一级| 在线日韩成人| 中文国产亚洲喷潮| www.嫩草免费在线观看| 亚洲欧美精品午睡沙发| 五月天激情视频在线观看| 欧美日韩国产综合视频| 天天操天天操天天| 国产精品99精品一区二区三区∴| 中文字幕一区二区在线观看| 国产性猛交╳xxx乱大交| 伊人亚洲视频| 国产精品自拍视频一区| 在线观看国产v片| 欧美二三四区| 亚洲精品一区二区三区区别| av在线加勒比| japanese色系久久精品| 伦伦影院午夜理论片| 欧美久久精品一级c片| 精品亚洲国内自在自线福利| 国产夫妻在线观看| av电影在线不卡| 精品美女被调教视频大全网站| 999久久久久久久久6666| 精品视频一区二区在线| 亚洲色图校园春色| 紧缚奴在线一区二区三区| 手机免费看av| 日韩精品一区二区三区国语自制| 女人裸体性做爰全过| 精品久久久久久久大神国产| 欧美丝袜丝交足nylons172| 日本视频在线播放| 日韩视频二区| 黄色高清在线观看| 久久久久福利视频| 136福利视频导航| 1024日韩| 亚洲日本理论电影| 亚洲免费福利一区| 精品视频123区在线观看| 无码 人妻 在线 视频| 91麻豆精品久久毛片一级| 欧美黄色一级片视频| 久久久999精品免费| 精品一区电影国产| 亚洲精品爱爱久久| 日本在线看片免费人成视1000| 不卡av电影在线播放| 黄色国产网站在线观看| 日本在线视频免费| 亚洲精品国产免费| 波多野结衣家庭教师在线观看| 国产精久久一区二区三区| 亚洲一区二区视频在线| 日本最新一区二区三区视频观看| 日韩av成人在线观看| 黄色大片在线免费观看| 黄色一级大片在线免费观看| 国产在线一区二区综合免费视频| 日韩最新av在线| 黄污网站在线观看| 在线日韩av观看| 日韩欧美精品三级| 尤物视频在线| 久久91精品国产91久久久| 免费高清在线一区| 亚洲污视频在线观看| 无码中文字幕色专区| 日韩av无码一区二区三区不卡| 日韩精品一区第一页| 亚洲 欧美 变态 另类 综合| 精品88久久久久88久久久| 日本丰满大乳奶| 欧美日韩另类字幕中文| 7799精品视频天天看| 久久这里有精品| 欧美v亚洲v综合ⅴ国产v| 成人在线视频一区二区三区| 超碰在线人人干| 国产又黄又粗视频| 伊人色**天天综合婷婷| 久久久免费高清电视剧观看| 欧美日韩高清在线| 久久免费视频网| 久久精品国产www456c0m| 日韩欧美亚洲成人| 欧洲一区二区三区| 黄色网页在线免费观看| 亚洲欧美影音先锋| 国产福利视频一区二区三区| 久久久久久久久久av| 六月婷婷七月丁香| 成人欧美一区二区三区视频xxx| 国产欧美一区二区精品婷婷| 污视频网站在线播放| 久久这里只有精品18| 国产精品久久久久9999吃药| 中文在线资源观看视频网站免费不卡| 97人人做人人人难人人做| 朝桐光av在线一区二区三区| 国产麻豆精品久久一二三| 成人欧美一区二区三区黑人| 午夜影院免费版| 美女久久久久久久久久久| 欧美不卡视频一区发布| www.黄色在线| 国产成人精品aa毛片| 日本v片在线高清不卡在线观看| 国产日韩一区二区三区在线播放| 国产精品www994| 欧美一区二区| 色婷婷综合久久久久中文一区二区| 国产精品入口尤物| 精品视频一二区| 日韩精品大片| 久久免费视频一区| 国产精品精品久久久久久| 天天躁日日躁狠狠躁超碰2020| 麻豆一区二区99久久久久| 亚洲美女av在线播放| 免费高清视频在线观看| 亚洲国产精彩中文乱码av| 久久影院午夜精品| 特级片在线观看|