婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 超簡陋瀏覽器

超簡陋瀏覽器

熱門標簽:徐州天音防封電銷卡 鄭州智能外呼系統運營商 獲客智能電銷機器人 電話機器人適用業務 哈爾濱外呼系統代理商 不錯的400電話辦理 佛山防封外呼系統收費 湛江電銷防封卡 南昌辦理400電話怎么安裝
可是那些破站點讓人太郁悶了...不是彈出廣告,就是滿屏幕飄浮動廣告....氣死我了...

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

還可以自動記得上次瀏覽的頁面,打開就直接進入,看書的時候就不怕打斷了

因為超簡陋,所以連 表單也不支持,只支持鏈接,哈哈,看書倒是夠用了....

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


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

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;if1.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;iallLinks.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;iallLinks.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,"quot;").replace(/ /g,"nbsp;").replace(/\t/g,"nbsp;nbsp;nbsp;nbsp;").replace(//g,"lt;").replace(/>/g,"gt;").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;iaryOnPropertyChange_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;iaryOnPropertyChange_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>    

標簽:蕪湖 蘭州 廣西 安康 懷化 呂梁 紹興 吉安

巨人網絡通訊聲明:本文標題《超簡陋瀏覽器》,本文關鍵詞  超,簡陋,瀏覽器,超,簡陋,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《超簡陋瀏覽器》相關的同類信息!
  • 本頁收集關于超簡陋瀏覽器的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品午夜久久福利影院| 蜜桃精品视频在线观看| 精品国产免费一区二区三区香蕉| 亚洲aaa精品| 日韩美女在线视频| 香蕉成人啪国产精品视频综合网| 91丝袜美腿高跟国产极品老师| 粗大黑人巨茎大战欧美成人| 国产精品欧美综合在线| 亚洲综合图片区| 欧洲一区二区av| 91视频.com| 欧美日韩一区久久| 麻豆视频一区二区| 欧美韩国日本不卡| 99久久99久久综合| 国产精品免费看片| 欧美xxxxxxxx| 九九视频精品免费| 亚洲男人都懂的| 成人综合婷婷国产精品久久免费| 亚洲精品写真福利| 精品国产成人系列| 色偷偷久久人人79超碰人人澡| 国产一区二区电影| 精品一区二区三区久久久| 成人免费毛片嘿嘿连载视频| 成人免费看片app下载| 亚洲精品水蜜桃| 欧美激情综合网| 91久久线看在观草草青青| 亚洲图片欧美激情| 91蜜桃婷婷狠狠久久综合9色| 国产精品不卡在线观看| 亚洲免费av高清| 26uuu亚洲综合色| 午夜免费欧美电影| 日韩精品一区二区三区中文不卡 | 综合色中文字幕| av一区二区三区黑人| 国产在线麻豆精品观看| 蓝色福利精品导航| 在线影视一区二区三区| 精品sm在线观看| 蜜桃视频在线一区| 精品一区二区三区久久| 国产福利一区二区| 久久机这里只有精品| 成人免费毛片片v| 欧美性生活大片视频| 91日韩一区二区三区| 欧美性大战久久久久久久蜜臀| 日本韩国欧美一区二区三区| 欧美久久高跟鞋激| 久久在线免费观看| 亚洲视频 欧洲视频| 日韩成人免费看| 五月天一区二区| 亚洲成人av中文| 一区二区三区产品免费精品久久75| 精品福利在线导航| 日韩欧美国产综合在线一区二区三区| 91久久国产最好的精华液| 福利一区福利二区| 国产成人午夜电影网| 国产精品私房写真福利视频| 欧美成人video| 欧美在线视频日韩| 91久久香蕉国产日韩欧美9色| 91女人视频在线观看| 欧美综合色免费| 日韩午夜电影在线观看| 粉嫩av一区二区三区| 亚洲人成在线观看一区二区| 亚洲乱码国产乱码精品精98午夜| 国产精品网站在线播放| 中文字幕成人在线观看| 国产精品二三区| 亚洲免费伊人电影| 一区二区三区欧美日| 午夜激情综合网| 日韩av一区二区三区四区| 午夜伊人狠狠久久| 秋霞午夜av一区二区三区| 美国毛片一区二区| 亚洲成人精品一区二区| 亚洲成人免费影院| 婷婷丁香久久五月婷婷| 亚洲国产aⅴ成人精品无吗| 久久尤物电影视频在线观看| 欧美电视剧免费全集观看| 亚洲大尺度视频在线观看| 99精品欧美一区二区三区小说| 亚洲图片一区二区| 亚洲精品免费在线观看| 午夜视频在线观看一区| 狠狠色丁香久久婷婷综合丁香| 国产激情一区二区三区四区 | 亚洲成在线观看| 久久疯狂做爰流白浆xx| 国产99精品国产| 亚洲乱码一区二区三区在线观看| 日韩一级精品视频在线观看| 国产精品素人视频| 国产一区高清在线| 欧美一区二区三区免费大片| 亚洲日本免费电影| 久久综合九色综合97婷婷女人| 欧美一级在线视频| 国产精品成人午夜| 欧美一级搡bbbb搡bbbb| 久久久久久久综合日本| 国产成人在线网站| 欧美精彩视频一区二区三区| 91久久国产最好的精华液| 日本一区二区高清| 经典三级一区二区| 欧美一级黄色片| 日韩国产在线观看一区| 色先锋资源久久综合| 91一区二区在线| 国产日韩欧美综合在线| 国产成人a级片| 国产福利一区二区三区视频在线 | 久久久精品日韩欧美| 精品一区二区三区的国产在线播放 | 亚洲精品老司机| 91高清视频免费看| 亚洲一区视频在线观看视频| 欧美在线一二三四区| 亚洲国产精品久久久久婷婷884 | 亚洲欧洲成人自拍| 精品一区二区在线看| 日韩精品一区二区三区在线 | 亚洲国产电影在线观看| 国产老妇另类xxxxx| 日韩欧美另类在线| 国产大陆a不卡| 亚洲国产色一区| 91精品国模一区二区三区| 国产精品久久久久久亚洲毛片 | 人人超碰91尤物精品国产| www.66久久| 亚洲欧美日韩精品久久久久| 国产精品亚洲第一区在线暖暖韩国| 欧美成人在线直播| 国产亚洲精品7777| 久久久久亚洲蜜桃| 国产资源在线一区| 亚洲伦在线观看| 亚洲精品在线免费播放| 91麻豆精品秘密| 精品亚洲免费视频| 亚洲综合色在线| 久久这里都是精品| 精品一区二区在线播放| 9191成人精品久久| 亚洲啪啪综合av一区二区三区| 亚洲国产欧美日韩另类综合| 一级日本不卡的影视| 色综合一区二区三区| 国产精品美女久久久久久2018| 久久综合久色欧美综合狠狠| 欧美日韩中文字幕一区二区| 91麻豆视频网站| 成人手机电影网| 老司机午夜精品| 人禽交欧美网站| 视频一区在线播放| 一区二区久久久| 亚洲一区二区欧美日韩| 一区二区三区四区亚洲| 国产精品久久久久久久浪潮网站| 久久五月婷婷丁香社区| 欧美久久久一区| 6080日韩午夜伦伦午夜伦| 欧美美女激情18p| 欧美日韩在线播放三区四区| 一本久久精品一区二区| 国产精品自在在线| 天天操天天干天天综合网| 一区二区三区在线免费| 亚洲美女偷拍久久| 一区二区在线免费观看| 亚洲精品一二三四区| |精品福利一区二区三区| 国产精品美女视频| 欧美一a一片一级一片| 精品视频一区二区不卡| 欧美不卡视频一区| 亚洲图片欧美一区| 国产在线不卡一卡二卡三卡四卡| 色999日韩国产欧美一区二区| 欧美一区二区精美| 中文欧美字幕免费| 免费成人美女在线观看.| 91美女福利视频| 国产亚洲一区字幕| 麻豆一区二区在线| 欧美精品在线观看一区二区|