javascript技巧全集(四)

 //移動的圖層,拖動

        1.<spanstyle='position:absolute;width:200;height:200;background:red'onmousedown=MouseDown(this) onmousemove=MouseMove()onmouseup=MouseUp()>meizz</span>
        <script language=javascript>
        var Obj;
        function MouseDown(obj)
        {
        Obj=obj;
        Obj.setCapture();
        Obj.l=event.x-Obj.style.pixelLeft;
        Obj.t=event.y-Obj.style.pixelTop;
        }
        function MouseMove()
        {
        if(Obj!=null)
        {
        Obj.style.left = event.x-Obj.l;
        Obj.style.top = event.y-Obj.t;
        }
        }
        function MouseUp()
        {
        if(Obj!=null)
        {
        Obj.releaseCapture();
        Obj=null;
        }
        }
        </script>
        2.
        <div id="myDiv"src="logo.gif" on_drag="doDrag();"onmouseover="this.style.cursor='hand'"style="position:absolute;left=100;top=100;" onmousedown="doMouseDown();">
        <a href="#"onclick="return false"><h1>wlecome</h1></a>
        </div>
        <scriptlanguage="JavaScript" type="text/javascript">
        var orgMouseX;
        var orgMouseY;
        var orgObjX;
        var orgObjY;
        function doDrag()
        {
        var myObject=document.all.myDiv;

        varx=event.clientX;
        var y=event.clientY;
       myObject.style.left=x-(orgMouseX-orgObjX);
       myObject.style.top=y-(orgMouseY-orgObjY);

        }
        function doMouseDown()
        {
        orgMouseX=event.clientX;
        orgMouseY=event.clientY;
       orgObjX=parseInt(document.all.myDiv.style.left);
       orgObjY=parseInt(document.all.myDiv.style.top);
        }

       </script>

        //文檔狀態改變

        <iframesrc="a.html" id="f" name="f"scrolling="no" frameborder=0 marginwidth=0marginheight=0></iframe>
        <script>
        vardoc=window.frames["f"].document;
        function s(){
        if(doc.readyState=="complete"){
       document.all.f.style.height=doc.body.scrollHeight
        document.all.f.style.width=doc.body.scrollWidth
        }
        }
        doc.onreadystatechange=s
        </script>


        //
刷新後不變的文本框 <HTML>
        <HEAD>
        <META NAME="save"CONTENT="history">
        <STYLE>
        .sHistory {behavior:url(#default#savehistory);}
        </STYLE>
        </HEAD>
        <BODY>
        <INPUT class=sHistory type=textid=oPersistInput>
        </BODY>
        </HTML>

        //訪問剪貼板

       event.dataTransfer.setData("URL", oImage.src);
        sImageURL = event.dataTransfer.getData("URL")
        (2)
普通訪問
       window.clipboardData.setData("Text",oSource.innerText);
       window.clipboardData.getData("Text");


        //
操作COOKIE

        functionSetCookie(sName, sValue)
        {
        document.cookie = sName +"=" + escape(sValue) + "; ";
        }
        function GetCookie(sName)
        {
        var aCookie =document.cookie.split("; ");
        for (var i=0; i < aCookie.length;i++)
        {

        var aCrumb =aCookie.split("=");
        if (sName == aCrumb[0])
        return unescape(aCrumb[1]);
        }

        }
        function DelCookie(sName)
        {
        document.cookie = sName +"=" + escape(sValue) + "; expires=Fri, 31 Dec 1999 23:59:59GMT;";
        }


        //setTimeout
增加參數

        <script>
        var _st = window.setTimeout;
        window.setTimeout = function(fRef,mDelay) {
        if(typeof fRef == 'function'){
        var argu =Array.prototype.slice.call(arguments,2);
        var f = (function(){fRef.apply(null, argu); });
        return _st(f, mDelay);
        }
        return _st(fRef,mDelay);
        }
        function test(x){
        alert(x);
        }
       window.setTimeout(test,1000,'fason');
        </script>


        //
自定義的apply,call

       Function.prototype.apply = function (obj, argu) {
        if (obj)obj.constructor.prototype._caller = this;
        var argus = new Array();
        for (var i=0;i<argu.length;i++)
        argus = "argu[" + i +"]";
        var r;
        eval("r = " + (obj ?("obj._caller(" + argus.join(",") + ");") :("this(" + argus.join(",") + ");")));
        return r;
        };
        Function.prototype.call = function(obj) {
        var argu = new Array();
        for (var i=1;i<arguments.length;i++)
        argu[i-1] = arguments;
        return this.apply(obj, argu);
        };

        //下載文件

        functionDownURL(strRemoteURL,strLocalURL)
        {
        try
        {
        var xmlHTTP=newActiveXObject("Microsoft.XMLHTTP");
       xmlHTTP.open("Get",strRemoteURL,false);
        xmlHTTP.send();
        var adodbStream=newActiveXObject("ADODB.Stream");
        adodbStream.Type=1;//1=adTypeBinary
        adodbStream.Open();
        adodbStream.write(xmlHTTP.responseBody);
       adodbStream.SaveToFile(strLocalURL,2);
        adodbStream.Close();
        adodbStream=null;
        xmlHTTP=null;

        }
        catch(e)
        {
        window.confirm("
下載URL出錯!");
        }
        //window.confirm("下載完成.");
        }

        //檢驗連接是否有效

        functiongetXML(URL)
        {
        var xmlhttp = newActiveXObject("microsoft.xmlhttp");
        xmlhttp.Open("GET",URL,false);
        try
        {
        xmlhttp.Send();
        }
        catch(e){}
        finally
        {
        var result = xmlhttp.responseText;
        if(result)
        {
        if(xmlhttp.Status==200)
        {
        return(true);
        }
        else
        {
        return(false);
        }
        }
        else
        {
        return(false);
        }
        }
        }

 

        //POST代替FORM

        <SCRIPTlanguage="VBScript">
        Function URLEncoding(vstrIn)
        strReturn = ""
        For i = 1 To Len(vstrIn)
        ThisChr = Mid(vStrIn,i,1)
        If Abs(Asc(ThisChr)) < &HFFThen
        strReturn = strReturn & ThisChr
        Else
        innerCode = Asc(ThisChr)
        If innerCode < 0 Then
        innerCode = innerCode + &H10000
        End If
        Hight8 = (innerCode And &HFF00)\&HFF
        Low8 = innerCode And &HFF
        strReturn = strReturn &"%" & Hex(Hight8) & "%" & Hex(Low8)
        End If
        Next
        URLEncoding = strReturn
        End Function
        Function bytes2BSTR(vIn)
        strReturn = ""
        For i = 1 To LenB(vIn)
        ThisCharCode = AscB(MidB(vIn,i,1))
        If ThisCharCode < &H80 Then
        strReturn = strReturn &Chr(ThisCharCode)
        Else
        NextCharCode = AscB(MidB(vIn,i+1,1))
        strReturn = strReturn &Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
        i = i + 1
        End If
        Next
        bytes2BSTR = strReturn
        End Function
        dim strA,oReq
        strA =URLEncoding("submit1=Submit&text1=
中文")
        set oReq =CreateObject("MSXML2.XMLHTTP")
        oReq.open "POST","http://ServerName/VDir/TstResult.asp",false
        oReq.setRequestHeader"Content-Length",Len(strA)
        oReq.setRequestHeader"CONTENT-TYPE","application/x-www-form-urlencoded"
        oReq.send strA
        msgbox bytes2BSTR(oReq.responseBody)
        </SCRIPT>

        //readyState是xmlhttp返回數據的進度,0=載入中,1=未初始化,2=已載入,3=運行中,4=完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章