亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 20-6 構(gòu)造菜單類.htm

?? JAVASCRIPT完全自學(xué)手冊,中源碼的驗證修訂實例
?? HTM
字號:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312" />
<title>20-6  構(gòu)造菜單類</title>
<style>
* { font-size:12px; font-family:宋體, Arial; } /*規(guī)定了所有的字體樣式*/
body { overflow:auto; }
.item { float:left; cursor:pointer; padding:1px 6px; width:100%; }
.item_mover { background-color:#D0E0F0; }
.menu_layer { width:160px; border:1px outset buttonface; background-color:buttonface; }
</style>
<script>

String.prototype.html_encode = function(){ return(this.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>")); }
String.prototype.html_decode = function(){ return(this.replace(/<br>/ig,"\r\n").replace(/&nbsp;/ig," ").replace(/&lt;/ig,"<").replace(/&gt;/ig,">").replace(/&quot;/ig,"\"").replace(/&amp;/ig,"&")); }

function $(str){ return(document.getElementById(str)); }
function $new(tag){ return(document.createElement(tag)); }
function uid(){ return("u"+(new Date()).getTime().toString(35)+parseInt(Math.random()*999999).toString(35)); }

//HTML基類
function HTML(strText){
    //判斷是否重復(fù)繼承
    if(this.CONSTRUCTOR)if(this.CONSTRUCTOR["HTML"])return;
    //公有屬性
    if(!this.CONSTRUCTOR)this.CONSTRUCTOR = new Array();
    this.CONSTRUCTOR["HTML"] = true;
    this.id = uid();
    //私有屬性
    var _html, _text, _self;
    _html = $new("div");
    _html.self = _self = this;
    //私有方法
    function init(strText){
        text(strText);
    }
    //特權(quán)方法
    this.appendChild = function appendChild(childNode){ _html.appendChild(childNode.html()); }
    this.attach = function attach(parentNode){ parentNode.appendChild(_html); }
    this.childNodes = function childNodes(index){
        var re = new Array();
        if(index>-1 && index<_html.childNodes.length)return(_html.childNodes[index].self);
        for(var i=0; i<_html.childNodes.length; i++)if(_html.childNodes[i].self)re.push(_html.childNodes[i].self);
        return(re);
    }
    this.hide = function hide(){ style({"display":"none"}); }
    this.html = function html(){ return(_html); }
    this.insertAfter = function(node){ if(_html.nextSibling){ _html.parentNode.insertBefore(node.html(), _html.nextSibling); }else{ this.appendChild(node); } }
    this.move = function move(x, y){ style({"position":"absolute", "left":x, "top":y}); }
    this.nextSibling = function nextSibling(){ if(_html.nextSibling)return(_html.nextSibling.self); }
    this.parentNode = function parentNode(){ if(_html.parentNode)return(_html.parentNode.self); }
    this.previousSibling = function previousSibling(){ if(_html.previousSibling)return(_html.previousSibling.self); }
    this.show = function show(x, y){ style({"display":"block"}); if(x!=undefined&&y!=undefined)move(x, y); }
    this.style = function style(oStyle){
        if(oStyle)switch(typeof(oStyle)){
            case "string":
                _html.style.cssText = oStyle;
            break;
            case "object":
                for(var i in oStyle)_html.style[i] = oStyle[i];
            break;
        }
        return(_html.style);
    }
    this.text = function text(str){
        if(str)_html.innerHTML = _text = String(str);
        return(_text);
    }
    this.toString = this.html;
    //對象初始化
    init(strText);
    //在全局中注冊此對象
    window[this.id] = this;
}

//CMD基類
function CMD(strCMD, strType){
    //判斷是否重復(fù)繼承
    if(this.CONSTRUCTOR)if(this.CONSTRUCTOR["CMD"])return;
    //公有屬性
    if(!this.CONSTRUCTOR)this.CONSTRUCTOR = new Array();
    this.CONSTRUCTOR["CMD"] = true;
    //私有屬性
    var _text, _type;
    //私有方法
    function init(strCMD, strType){
        text(strCMD);
        type(strType);
    }
    //特權(quán)方法
    this.text = function text(str){
        if(str)_text = String(str);
        return(_text);
    }
    this.toString = function(){ return(_text); }
    this.type = function type(str){
        str = String(str).toLowerCase();
        switch(str){
            case "js": case "javascript": case "script":
                _type = "javascript";
            break;
            case "": case undefined: case null:
            break;
            default:
                _type = "url";
        }
        return(_type);
    }
    //對象初始化
    init(strCMD, strType);
}

//HTML擴展類 -> Alternation類
function Alternation(){
    //判斷是否重復(fù)繼承
    if(this.CONSTRUCTOR)if(this.CONSTRUCTOR["Alternation"])return;
    //公有屬性
    if(!this.CONSTRUCTOR)this.CONSTRUCTOR = new Array();
    this.CONSTRUCTOR["Alternation"] = true;
    //繼承
    HTML.apply(this, arguments);
    //私有屬性
    var _classNames = new Array();
    _classNames["normal"] = "item";
    _classNames["mouseover"] = "item item_mover";
    //特權(quán)方法
    this.set_alternation_className = function(name, className){
        _classNames[name] = className;
    }
    //初始化
    this.html().onmouseover = function(){ this.className = _classNames["mouseover"]; }
    this.html().onmouseout = function(){ this.className = _classNames["normal"]; }
    this.html().className = _classNames["normal"];
}

//HTML擴展類 -> Link類
function Link(strText, strHref, strTarget){
    //判斷是否重復(fù)繼承
    if(this.CONSTRUCTOR)if(this.CONSTRUCTOR["Link"])return;
    //公有屬性
    if(!this.CONSTRUCTOR)this.CONSTRUCTOR = new Array();
    this.CONSTRUCTOR["Link"] = true;
    //繼承
    HTML.apply(this);
    //私有屬性
    var _href, _target;
    //私有方法重載
    text = this.text;
    //特權(quán)方法
    this.href = function href(cmd){
        if(cmd)if(cmd.constructor==CMD){
            _href = cmd;
        }else{
            _href = new CMD(String(cmd));
        }
        return(_href);
    }
    
    this.target = function target(str){
        if(str)_target = str;
        return(_target);
    }
    
    this.open = function open(){
        if(_href.text()==undefined)return;
        if(_href.type=="javascript"){
            try{
                eval(_href.text);
            }catch(e){}
        }else{
            window.open(_href, _target);
        }
    }
    //對象初始化
    this.html().onclick = this.open;
    text(strText);
    _href = new CMD(strHref);
    target(strTarget || "_self");
}

function MenuLayer(menuItem, menuDir){
    //繼承
    HTML.apply(this);
    //私有屬性
    var _pMenu, _dir, 
    _pMenu = menuItem;
    _dir = "horizone";
    //特權(quán)方法
    this.add = function add(text, cmd, target){
        var obj = new MenuItem(text, cmd, target);
        this.appendChild(obj);
    }
    this.dir = function dir(str){
        if(str)if(str=="vertical"){
            _dir = "vertical";
        }else{
            _dir = "horizone";
        }
        return(_dir);
    }
    //對象初始化
    this.html().className = "menu_layer";
    this.html().onmouseover = function(){ _pMenu.cancelHideSub(); }
    this.html().onmouseout = function(){ _pMenu.preHideSub(); }
}

function MenuItem(text, cmd, target){
    //多重繼承
    Alternation.apply(this);
    Link.apply(this, [text, cmd, target]);
    //私有屬性
    var _sub, _html;
    _html = this.html();
    //特權(quán)方法
    this.sub = function(){
        if(!_sub){
            _sub = new MenuLayer(this);
            this.insertAfter(_sub);
            _sub.move(0, 0);
            _sub.hide();
        }
        return(_sub);
    }
    this.hideSub = function(){ if(_sub)_sub.hide(); }
    this.preHideSub = function(){ this.cancelHideSub(); this.timer = setTimeout("window[\""+this.id+"\"].hideSub();",200); }
    this.cancelHideSub = function(){ clearTimeout(this.timer); }
    //對象初始化
    this.html()._onmouseover = this.html().onmouseover;
    this.html()._onmouseout = this.html().onmouseout;
    this.html().onmouseover = function(){
        clearTimeout(this.self.timer);
        if(this.disabled)return;
        if(_sub&&_sub.childNodes().length>0)if(_sub.dir()=="vertical"){
            _sub.show(_html.offsetLeft, _html.offsetTop+_html.offsetHeight);
        }else{
            _sub.show(_html.offsetLeft+_html.offsetWidth, _html.offsetTop);
        }
        this._onmouseover();
    }
    this.html().onmouseout = function(){
        this.self.preHideSub();
        this._onmouseout();
    }
}

function MenuBar(){
    //繼承
    HTML.apply(this);
    //特權(quán)方法
    this.add = function add(text){
        var obj = new MenuItem(text);
        obj.style({"width":"auto"});
        obj.sub().dir("vertical");
        this.appendChild(obj);
    }
}
window.onload = function(){
    obj = new MenuBar();
    obj.attach(document.body);
    obj.add("文件"); obj.add("編輯"); obj.add("視圖"); obj.add("格式");
    obj.childNodes(0).sub().add("打開", "http:\/\/www.163.com");
    obj.childNodes(0).sub().add("退出", "http:\/\/www.163.com");
    obj.childNodes(1).sub().add("復(fù)制", "http:\/\/www.163.com");
    obj.childNodes(1).sub().add("粘帖", "http:\/\/www.163.com");
    obj.childNodes(1).sub().add("撤銷", "http:\/\/www.163.com");
    obj.childNodes(1).sub().childNodes(1).sub().add("剪貼板1");
    obj.childNodes(1).sub().childNodes(1).sub().add("剪貼板2");
    obj.childNodes(1).sub().childNodes(1).sub().add("剪貼板3");
}
</script>
</head>
<body>
</body>
</html>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美mv日韩mv国产| 在线亚洲一区观看| 欧美大片免费久久精品三p| 亚洲欧美日韩国产综合| 成人av在线一区二区三区| 日韩精品中文字幕在线不卡尤物| 亚洲激情五月婷婷| 99国产精品一区| 国产精品青草综合久久久久99| 精品综合免费视频观看| 欧美一区二区三区四区五区 | 欧美三级视频在线| 综合久久久久综合| 日本高清不卡在线观看| 亚洲精品国产第一综合99久久| kk眼镜猥琐国模调教系列一区二区| 2023国产精品视频| 国产精品夜夜嗨| 亚洲国产成人私人影院tom| 懂色av一区二区在线播放| 中文字幕av一区 二区| 99re免费视频精品全部| 亚洲视频一区在线观看| 欧美性受极品xxxx喷水| 亚洲国产中文字幕在线视频综合| 欧美蜜桃一区二区三区| 久久精品国产免费看久久精品| 欧美xingq一区二区| 国产一区二区三区久久久| 欧美高清在线一区| 色综合中文综合网| 亚洲资源在线观看| 91精品国产欧美一区二区成人| 日韩成人免费电影| 国产欧美一区二区精品婷婷 | 国产成人免费视频网站| 亚洲欧美偷拍三级| 欧美一级二级三级蜜桃| av一二三不卡影片| 日韩国产欧美一区二区三区| 国产色爱av资源综合区| 欧美日韩国产一二三| 国产宾馆实践打屁股91| 一区二区三区国产| 欧美精品一区二区三区很污很色的 | 国产日韩影视精品| 69av一区二区三区| www.综合网.com| 极品少妇xxxx精品少妇| 一区二区三区四区在线| 欧美国产精品久久| 日韩一级在线观看| 欧美日韩中文一区| 91丨porny丨蝌蚪视频| 国产一区二区电影| 日韩电影在线一区二区| 一区二区在线观看免费| 国产精品久久久久久久久动漫 | 奇米精品一区二区三区四区| 夜夜亚洲天天久久| 亚洲欧美日韩国产一区二区三区| 久久综合狠狠综合| 精品噜噜噜噜久久久久久久久试看| 日本精品免费观看高清观看| 99国产精品国产精品毛片| 国产高清不卡一区二区| 国产一区二区在线影院| 麻豆中文一区二区| 久久丁香综合五月国产三级网站| 肉肉av福利一精品导航| 丝袜a∨在线一区二区三区不卡| 亚洲福利国产精品| 亚洲国产成人porn| 日韩制服丝袜av| 亚洲高清免费视频| 三级不卡在线观看| 久久国产精品第一页| 精油按摩中文字幕久久| 国产不卡一区视频| 99视频国产精品| 在线观看区一区二| 制服.丝袜.亚洲.中文.综合| 欧美va亚洲va香蕉在线| 中文字幕免费在线观看视频一区| 亚洲欧洲综合另类在线| 亚洲18色成人| 国产一区在线精品| 成人av免费观看| 97久久精品人人做人人爽| 国产美女久久久久| 在线视频亚洲一区| 欧美精选在线播放| 日韩免费在线观看| 久久久www成人免费毛片麻豆| 国产欧美日韩不卡免费| 亚洲日本丝袜连裤袜办公室| 亚洲自拍偷拍麻豆| 毛片av中文字幕一区二区| 国产一区视频网站| 一本大道久久a久久综合 | 亚洲天堂福利av| 婷婷综合五月天| 国产乱子伦视频一区二区三区| 国产高清一区日本| 欧美羞羞免费网站| 欧美xxxx老人做受| 国产精品色呦呦| 无吗不卡中文字幕| 国产成人免费在线| 99国产精品国产精品久久| 欧美日韩夫妻久久| 国产色一区二区| 免费观看在线色综合| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 成+人+亚洲+综合天堂| 欧美日韩免费在线视频| 国产精品午夜电影| 男女性色大片免费观看一区二区| 成人免费视频app| 91精品国产黑色紧身裤美女| 亚洲欧美日本在线| 国产精品一区二区你懂的| 欧美性受xxxx| 自拍偷拍国产精品| 激情综合五月婷婷| 精品粉嫩超白一线天av| 亚洲成人一区二区在线观看| 国产精一品亚洲二区在线视频| 91精品一区二区三区久久久久久| 一级精品视频在线观看宜春院| 国产ts人妖一区二区| 日韩精品自拍偷拍| 日韩电影一区二区三区四区| 欧美性大战xxxxx久久久| 国产视频一区不卡| 懂色av一区二区三区免费观看| 日韩三级在线观看| 日韩一区精品视频| 欧美精品日韩精品| 日韩精品成人一区二区三区| 日本韩国欧美一区二区三区| 亚洲欧洲中文日韩久久av乱码| av一二三不卡影片| 亚洲欧美一区二区三区久本道91| 成人在线视频一区| 成人欧美一区二区三区在线播放| 91精品1区2区| 午夜激情综合网| 欧美电影免费提供在线观看| 裸体健美xxxx欧美裸体表演| 国产精品女同互慰在线看 | 久久综合色婷婷| 福利一区福利二区| 亚洲人成网站色在线观看 | 国产精品三级视频| 91行情网站电视在线观看高清版| 亚洲高清视频的网址| 日韩三级伦理片妻子的秘密按摩| 国产成人在线色| 亚洲欧美日韩在线不卡| 3d动漫精品啪啪1区2区免费| 国产黄色91视频| 午夜视频在线观看一区二区三区| 日韩女优制服丝袜电影| 成人精品gif动图一区| 亚洲mv在线观看| 久久天堂av综合合色蜜桃网| 91亚洲精品乱码久久久久久蜜桃| 日韩在线一区二区三区| 国产欧美一区二区在线观看| 色一情一乱一乱一91av| 国产高清在线观看免费不卡| 午夜精品福利一区二区三区蜜桃| 久久精品一区二区三区不卡牛牛 | 亚洲综合一区二区精品导航| 欧美变态tickle挠乳网站| 91久久一区二区| 国产大片一区二区| 精品无人码麻豆乱码1区2区| 亚洲一区二区综合| 国产精品久久久久一区二区三区共| 在线不卡一区二区| 精品一区二区三区香蕉蜜桃| 亚洲午夜三级在线| 欧美日本一区二区在线观看| 国产**成人网毛片九色| 国产一区二区影院| 日韩高清一区二区| 一区二区三区在线不卡| 日韩理论片在线| 欧美国产日韩亚洲一区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 日韩精品电影在线| 五月激情综合网| 亚洲第一综合色| 天天综合网天天综合色| 亚洲一二三级电影| 亚洲成人av一区二区| 亚洲精品国产视频| 亚洲成人精品影院|