首页 > 编程 > HTML > 正文

code collection v0.44 hta

2020-01-25 19:40:51
字体:
来源:转载
供稿:网友
代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>code collection v0.44</title> 
<meta http-equiv="Content-Type" content="text/html; charset=GB2312"> 
<HTA:APPLICATION  
    ID="ttyp's code collection v0.44"  
    APPLICATIONNAME="ttyp's code collection v0.44"  
    VERSION="0.1"  
    SCROLL="no"  
    INNERBORDER="no"  
    CONTEXTMENU="yes"  
    CAPTION="yes"  
    ICON="skin//cc.ico"  
    SHOWINTASKBAR="yes"  
    SINGLEINSTANCE="yes"  
    SYSMENU="yes"  
    WINDOWSTATE="normal" 
    NAVIGABLE="yes" 
    /> 
<script language="JavaScript" src="js/xml.js"></script> 
<script language="JavaScript" src="js/xmlhttp.js"></script> 
<SCRIPT language=JavaScript src="js/skin.js"></script> 
<SCRIPT language=JavaScript src="js/progressorbar.js"></script> 
<script language="JavaScript" src="js/xtree.js"></script> 
<script language="JavaScript" src="js/dom.js"></script> 
<script language="JavaScript" src="js/config.js"></script> 
<script language="JavaScript" src="js/global.js"></script> 
<script language="JavaScript" src="js/highlight.js"></script> 
<script language="VbScript" src="js/ts.vbs"></script> 
<script language="JavaScript" src="js/autoupdate.js"></script> 
<SCRIPT language=JavaScript src="js/dmenu.js"></script> 
<SCRIPT language=JavaScript src="js/output.js"></script> 
<SCRIPT language=JavaScript src="js/splitbar.js"></script> 
<SCRIPT language=JavaScript src="js/search.js"></script> 
<SCRIPT language=JavaScript src="js/toolbar.js"></script> 
<SCRIPT language=JavaScript src="js/inputfile.js"></script> 
<SCRIPT language=JavaScript src="js/createlink.js"></script> 
<SCRIPT language=JavaScript src="js/password.js"></script> 
<SCRIPT language=JavaScript src="js/chm.js"></script> 


<SCRIPT LANGUAGE="JavaScript"> 

var _designMode=0; 
var g_prompt; 
var g_window; 
var doc; 

<!-- 
function init() 
{     

    //定义全局变量 
    g_prompt    = new CLASS_PROMPT(); 
    g_window    = new CLASS_WINDOW(); 


    var doc        = new CLASS_XML("xml/data.xml") 

    //用于直接加载时获得根接点 
    var rootXml    = doc.root(); 
    var root    = getRootNode(rootXml); 

    //dom.js 
    loadChild(root,rootXml); 

    doc.dispose(); 

    root.setup(document.getElementById("divTree"));     

    bt_newitem.onclick = function(){ 
        if(Global.selectedNode!=null){ 
            writeDate(document.frames.fraGeneral,""); 
            changeModel(0); 

            var o = new Node("新接点","javascript:writeCode()","fraGeneral"); 
            if(Global.selectedNode.childNodes.length>0&&Global.selectedNode.load==false){ 
                Global.selectedNode.expand(); 
                Global.selectedNode.load = false; 
            }else{ 
                Global.selectedNode.load = true; 
            } 
            Global.selectedNode.add(o); 

            o.select(); 
            o.edit(); 

            var o_xml    = new CLASS_XML("xml/data.xml"); 

            var n = o_xml.selectSingleNode("//*[@id=" + o.parent.key + "]"); 

            var q = o_xml.createElement("item"); 
                q.setAttribute("name","新接点"); 
                q.setAttribute("id",o.key); 

            n.appendChild(q); 

            //保存菜单文件 
            o_xml.save(); 
            o_xml.dispose(); 

        }else{ 
            g_prompt.show("请选择要添加的接点栏目"); 
        }         
    } 

    bt_delete.onclick = function(){ 
        var _o = Global.selectedNode; 
        if(_o){ 
            if(_o.childNodes.length==0){             
                var o_xml    = new CLASS_XML("xml/data.xml"); 
                var    m        = o_xml.selectSingleNode("//*[@id=" + _o.key + "]"); 

                if(m!=null&&m.nodeName=="item"){ 
                    if(confirm("是否真的删除接点[" + _o.text + "]?")){ 
                        m.parentNode.removeChild(m); 

                        o_xml.save(); 


                        //删除数据文件 
                        deleteContent(_o.key); 

                        _o.remove(); 
                    } 
                }else{ 
                    g_prompt.show("根接点不能删除!"); 
                } 

                o_xml.dispose(); 
            }else{ 
                g_prompt.show("有子接点不能删除",true); 
            } 
        }else{ 
            g_prompt.show("请选择要删除的接点"); 
        } 
    } 

    bt_save.onclick = function(){         
        var _o = Global.selectedNode; 
        if(_o){         
            //获取文本 
            var s = ""; 
            var t = _o.text; 

            switch(_designMode){ 
                case 0: 
                    s = document.frames.fraGeneral.document.documentElement.outerHTML; 
                break; 
                case 1: 
                    s = document.getElementById("editBox").innerText;                     
                break; 
                case 2: 
                    s = document.frames.fraPreview.document.documentElement.outerHTML; 
                default: 
                break; 
            } 

            //保存文本(dom.js) 
            if(saveContent(_o.key,t,s)){ 
                g_prompt.show("[" + _o.text + "]保存成功!"); 
            }else{ 
                g_prompt.show("[" + _o.text + "]保存失败!"); 
            } 
        }else{ 
            g_prompt.show("请选择要保存的接点"); 
        } 
    } 

    bt_update.onclick = function(){ 
        var    auto = new CLASS_AUTOUPDATE("CLASS_AUTOUPDATE",g_window); 
            auto.update(); 

    } 

    /* 
     *    树接点编辑事件 
     */ 
    Node.prototype.onAfterEdit = function(e,oldText,newText){ 
        if(oldText!=newText){ 
            var _o    = Global.selectedNode; 
                _o.setText(this.text); 

            var o_xml = new CLASS_XML("xml/data.xml"); 

            var m    = o_xml.selectSingleNode("//*[@id=" + _o.key + "]"); 
            if(m!=null){ 
                m.setAttribute("name",this.text); 
                m.setAttribute("password",this.password); 
                //保存菜单文件 
                o_xml.save(); 

                var data = new CLASS_XML("xml//" + _o.key + ".xml"); 
                if(data.error == false){ 
                    var    title = data.selectSingleNode("//title"); 

                    if(title!=null){ 
                        title.setAttribute("value",this.text); 
                    } 
                    data.save(); 
                } 
                data.dispose();                 
            }else{ 
                document.title = "Error:没有找到接点" + _o.key; 
            } 

            o_xml.dispose(); 

            this.select(); 
        } 

    } 

    /* 
     *    接点拖动事件 
     */ 
    Node.prototype.onDrag = function(from,to){ 
        var _f = from.path+""; 
        var _t = to.path+""; 
        if(_f.length<_t.length&&_t.substring(0,_f.length)==_f){ 
            g_prompt.show("不能移动到子接点"); 
            return; 
        } 

        //处理树 
        to.moveToChild(from); 

        /* 
         *开始移动接点 
         */         
        var o_xml = new CLASS_XML("xml/data.xml"); 

        //处理XML 
        var o_f = o_xml.selectSingleNode("//*[@id=" + from.key + "]"); 
        var o_t = o_xml.selectSingleNode("//*[@id=" + to.key + "]"); 

        o_t.appendChild(o_f); 

        o_xml.save(); 
        o_xml.dispose(); 

    } 


    Node.prototype.onExpand = function(n){ 
        var o = this;     

        if(!this.load){ 

            if(this.locked){ 

                var r = window.showModalDialog("js/password.htm",this.key,"dialogHeight:80px;dialogWidth:250px;");             

                if(typeof(r)=="undefined"||r==0){                     
                    return false; 
                }else{             
                    o.locked = false; 
                } 

                 
            } 

            this.open    = 1; 
            this.load    = true; 

            var o_xml    = new CLASS_XML("xml/data.xml"); 
            var m        = o_xml.selectSingleNode("//*[@id=" + o.key + "]"); 

            var    f    = o.getFirstChild();             
                f.remove(); 

            //dom.js 
            loadChild(o,m); 

            o_xml.dispose(); 
        }  
        return true; 
    } 


    document.frames.fraGeneral.document.designMode = "on"; 

    //创建右键菜单 
    var g_rightmenu = new CLASS_RIGHTMENU(document.getElementById("test"),document.getElementById("divTree"),"xml/rightmenu.xml"); 

    //创建分割条 
    var g_splitbar    = new CLASS_SPLITBAR_HORIZON(document.getElementById("divSplit"),document.getElementById("divTree"),document.getElementById("divList")); 

    var    auto    = new CLASS_AUTOUPDATE("CLASS_AUTOUPDATE",g_window); 
        auto.check(); 

        CLASS_TOOLBAR.prototype.highlight = doHighlight; 
    var g_toolbar    =  new CLASS_TOOLBAR(document.getElementById("cbHead"),document.frames.fraGeneral,g_window); 
        g_toolbar.path = skinPath; 


    //全局键盘事件 
    document.onkeydown = function(e){ 
        var code,o; 

        //兼容ns&ie事件 
        if(!e) e = window.event; 

        //兼容ns&ie按键 
        code = e.which ? e.which : e.keyCode;         

        switch(code){ 
            case 83: 
            case 115:                //ctrl+s 
                if(e.ctrlKey){ 
                    document.getElementById("bt_save").click(); 
                } 
                break; 
            case 110:                //ctrl+n 
            case 78: 
                if(e.ctrlKey){ 
                    document.getElementById("bt_newitem").click(); 
                } 
                break; 
            case 46:                //delete 
                if(e.shiftKey){ 
                    document.getElementById("bt_delete").click(); 
                } 
                break; 
            case 81:    //ctrl+q 
            case 113: 
                if(e.ctrlKey) 
                { 
                    changeModel(0,true); 
                } 
                break; 
            case 87:    //ctrl+w 
            case 119: 
                if(e.ctrlKey) 
                { 
                    changeModel(1,true); 
                } 
                break; 
            case 69:    //ctrl+e,ctrl+b 
            case 101: 
            case 66: 
            case 98: 
                if(e.ctrlKey) 
                { 
                    changeModel(2,true); 
                } 
                break; 
            default:break; 
        } 
    } 

    //开始画面 
    about(); 



/* 
 *    数据导入导出 
 */ 
function odata(flag){ 

    var _o    = Global.selectedNode; 
    if(_o){ 
        if(flag){                 
            outData(_o); 
        }else{ 
            inData(_o); 
        } 
    }else{ 
        g_prompt.show("请选择要操作的接点"); 
    } 


/* 
 *    重命名接点 
 */ 
function editNode(){ 
    var _o    = Global.selectedNode; 
    if(_o){ 
        _o.edit(); 
    } 


/* 
 *    转到连接 
 */ 
function go(url){ 
    changeModel(2,false); 
    document.getElementById("fraPreview").src = url; 


/* 
 *    写正文 
 */ 
function writeCode(id){     

    //获得接点的文本(dom.js) 
    var sid; 
    if(typeof(id)=="undefined"){ 
        sid = Global.selectedNode.key; 
        if(Global.selectedNode.locked){ 
            var r = window.showModalDialog("js/password.htm",Global.selectedNode.key,"dialogHeight:80px;dialogWidth:250px;");             
            if(typeof(r)=="undefined"||r==0){                 
                Global.selectedNode.unselect(); 
                return false; 
            }else{ 
                Global.selectedNode.locked = false;     
            } 
        } 
    }else{ 
        sid = id; 
        //判断id是否是锁定的 
    } 

    var s= readContent(sid); 

    changeModel(2,false); 

    writeDate(document.frames.fraPreview,s); 
    writeDate(document.frames.fraGeneral,s); 
    document.getElementById("editBox").innerText = s; 



/* 
 *    关于 
 */ 
function about(){     
    var doc    = new CLASS_XML("xml//autoupdate.xml"); 
    var info= doc.selectNodes("//UpdateInfo"); 
    var ab    = doc.selectSingleNode("//About"); 
    var ns    = doc.selectSingleNode("//nextversion"); 

    var s    = ""; 
    if(doc.error==false){ 
        if(ab!=null){ 
            s += ab.childNodes[0].text; 
        } 

        for(var i=0;i<info.length;i++){ 
            //s += "<xmp>" + info[i].childNodes[0].text + "</xmp><br>"; 
            s += info[i].childNodes[0].text + ""; 
        } 
        if(ns!=null){ 
            s += ns.childNodes[0].text; 
        }         
    }else{ 
        s    = "读配置文件失败!"; 
    } 
    doc.dispose(); 

    //切换浏览模式 
    changeModel(2,false); 

    //写正文 
    writeDate(document.frames.fraPreview,s); 
    writeDate(document.frames.fraGeneral,s); 
    document.getElementById("editBox").innerText = s; 


/* 
 *    写框价数据 
 */ 
function writeDate(fra,data){ 
    fra.document.close(); 
    fra.document.write(data); 
    fra.document.close(); 



/* 
 *    切换浏览模式 
 */ 
function changeModel(n,flag){ 
    var _dm=parseInt(n); 

    document.getElementById("Img_modelBtn").style.pixelTop=_dm*(-15); 

    var d = document.getElementById("editBox"); 
    var g = document.getElementById("fraGeneral"); 
    var p = document.getElementById("fraPreview"); 

    var gd= document.frames.fraGeneral.document; 
    var pd= document.frames.fraPreview.document; 

    var c = document.getElementById("cbHead"); 

    switch(_dm){ 
        case 0:    //普通 
            d.style.display = "none"; 
            g.style.display = ""; 
            p.style.display = "none"; 
            c.style.display = ""; 

            if(flag==true){ 
                writeDate(document.frames.fraGeneral,d.innerText); 
            } 

        break; 
        case 1:    //HTML 
            d.style.display = ""; 
            g.style.display = "none"; 
            p.style.display = "none"; 
            c.style.display = "none"; 

            if(flag==true){ 
                d.innerText = gd.documentElement.outerHTML; 
            } 

        break; 
        case 2:    //浏览 
            d.style.display = "none"; 
            g.style.display = "none"; 
            p.style.display = ""; 
            c.style.display = "none"; 

            if(flag==true){ 
                if(_designMode==0){ 
                    writeDate(document.frames.fraPreview,gd.documentElement.outerHTML); 
                    d.innerText = gd.documentElement.outerHTML; 
                } 
                if(_designMode==1){ 
                    writeDate(document.frames.fraGeneral,d.innerText); 
                    writeDate(document.frames.fraPreview,d.innerText); 
                } 
            } 

        break; 
    } 

    _designMode = _dm; 


function editTab(){ 
    sel    =event.srcElement.document.selection.createRange(); 
    switch (event.keyCode){ 
        case 8: 
            break 
        case 9: 
            sel.text = "/t/t/t/t"; 
             event.returnValue = false; 
            break; 
        case 13 : 
            break; 
        default: 
            break; 
    } 

//--> 
</SCRIPT> 
</head> 

<body marginleft=0 marginright=0 onload="init()" oncontextmenu="if(event.srcElement.tagName!='TEXTAREA'&&event.srcElement.tagName!='INPUT'&&event.srcElement.contentEditable!='true'){return false;}"> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
    progressorbar.start(); 
//--> 
</SCRIPT> 
<DIV id=test style="diaplay:none;position:absolute;"></DIV> 
<div id="logoBar" noWrap oncontextmenu ="return false;" onselectstart="return false;"><b>Welcome to <a href='mailto:ttyp@21cn.com'><font color='#ffffff'>ttyp</font></a></b>'s code collection v0.44,and enjoy it:)</div> 
<div id="toolBar" noWrap oncontextmenu ="return false;" onselectstart="return false;"> 
    <a href="#" class="bt_off" id="bt_newitem" hideFocus="true"><div></div>NewItem</a><a href="#" class="bt_off" id="bt_delete" hideFocus="true" style="border-right-width:0px"><div></div>Delete</a><a href="#" class="bt_off" id="bt_save" hideFocus="true" style="border-right-width:1px"><div></div>Save</a> 
    <span id="settingBar"> 
        <a href="#" class="setting" id="bt_update" hideFocus="true" style="border-right:0px">Update</a> 
    </span> 
</div> 
</div> 
<div id="divTree" xmlSrc="xml/data.xml"></div> 
<div id="divList" onfocus="this.blur();"> 
    <div id=cbHead style="display:none;"></div> 
    <div id="divContent"> 
        <iframe id="fraGeneral" name="fraGeneral" style="display:none;" frameborder=0 width="100%" height="100%" marginwidth=0 marginheight=0 ></iframe> 
        <iframe id="fraPreview" name="fraPreview" style="display:none;" frameborder=0 width="100%" height="100%" marginwidth=0 marginheight=0 ></iframe> 
        <div id="editBox" name="editBox" style="width:100%;height:100%;" marginheight="1" marginwidth="1" contenteditable="true" onselectstart="event.cancelBubble=true;" designMode="off" oncontextmenu="return true;" onkeydown="editTab()"></div> 
    </div> 
    <SPAN STYLE="position:absolute;width:123;height:15;clip: rect(0 123 15 0)" onfocus="this.blur();"> 
    <IMG ID="Img_modelBtn" style="border:0" SRC="skin/default/img/editmode.gif" STYLE="position:absolute;top:0;left:0" usemap="#MBtnMap"> 
    </SPAN> 
</div> 
<div id="divSplit"></div> 
<map name="MBtnMap"> 
<area shape="rect" coords="0, 0, 40, 44"   alt="普通设计模式"    onclick="changeModel(0,true)"> 
<area shape="rect" coords="41, 0, 81, 44"  alt="HTML原码模式"    onclick="changeModel(1,true)"> 
<area shape="rect" coords="82, 0, 122, 44" alt="预览模式"        onclick="changeModel(2,true)"> 
</map> 
</body> 
</html> 
<SCRIPT language=JavaScript src="js/plugin.js"></script>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表