Internet time 时间同步(转载)

本文介绍了一种在PPC设备上实现网络时间同步的方法。主要包括通过因特网获取时间数据的具体实现步骤,将获取到的Internet时间转换为系统时间的过程,以及如何设置系统时间来完成整个同步流程。

从网络上同步时间,在PPC中可以起到自动校准时间的作用, 时间的设置很简单,我这里就不多写了,主要是获得时间数据。

1、获得因特网的时间数据。


int GetInternetTime(ULONG &ulTime)
{
    SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (INVALID_SOCKET == sock)
    {
        return -1;
    }
    sockaddr_in servAddr;
    servAddr.sin_family = AF_INET;
    servAddr.sin_port = htons(37);

    // http://tf.nist.gov/tf-cgi/servers.cgi 
    // nist1-sj.WiTime.net 64.125.78.85 San Jose, California    
    servAddr.sin_addr.S_un.S_addr = inet_addr("64.125.78.85");

    int i;
    BOOL bCont = FALSE;
    for (i = 0; i < RETRY_TIMES; i++)
    {
        if (-1 == connect(sock, (sockaddr *)&servAddr, sizeof(servAddr)))
        {
            continue;
        }
        else
        {
            bCont = TRUE;
            break;
        }
    }
    int nRecv = SOCKET_ERROR;
    if (bCont)
    {
        bCont = FALSE;
        for (i = 0; i < RETRY_TIMES; i++)
        {
            nRecv = recv(sock, (char *)&ulTime, sizeof(ulTime), 0);
            if (nRecv > 0)
            {
                ulTime = ntohl(ulTime);
                bCont = TRUE;
                break;
            }
            else
            {
                continue;
            }
        }
    }
     
    closesocket(sock);

    if (FALSE == bCont)
    {
        return -2;
    }
    return 0;
}

2、由Internet 时间转化为系统时间:


void ITimeToSTime(SYSTEMTIME &st, const ULONG ulTime)
{
    FILETIME ft;
    SYSTEMTIME stBase;

    memset(&stBase, 0, sizeof(stBase));
    stBase.wYear = 1900;
    stBase.wMonth = 1;
    stBase.wDay = 1;
    SystemTimeToFileTime(&stBase, &ft);
    LONGLONG * pLLong = (LONGLONG *) &ft;
    *pLLong += (LONGLONG) 10000000 * ulTime;
    FILETIME ft_local;
    FileTimeToLocalFileTime(&ft, &ft_local);
    FileTimeToSystemTime(&ft_local, &st);
}

3、在吧转化好的系统时间设置成系统的时间,大功告成。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>唯美 </title> <meta name="keywords" content=" "> <meta name="description" content=" "> <meta name="author" content="www."> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="css/reset.css" type="text/css" media="all"> <link rel="shortcut icon" href="index/images/favicon.ico"> <link rel="stylesheet" href="css/jquery.fancybox-1.3.4.css" type="text/css" media="screen"> <link rel="stylesheet" href="css/style.css" type="text/css" media="all"> <link href="css/prettyPhoto.css" rel="stylesheet" /> <script type="text/javascript" src="js/jquery.min.js" ></script> <script type="text/javascript" src="js/content_switch.js"></script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/jquery.mousewheel.js"></script> <script type="text/javascript" src="js/jquery-ui.js"></script> <script type="text/javascript" src="js/cScroll.js"></script> <script src="js/jquery.cycle.all.latest.js" type="text/javascript"></script> <script src="js/jquery.color.js" type="text/javascript"></script> <script type="text/javascript" src="js/script.js"></script> <script type="text/javascript" src="js/functions.js"></script> <script src="js/prettyPhoto.js"></script> <!--[if lt IE 9]> <script type="text/javascript" src="./js/html5.js"></script> <link rel="stylesheet" href="./css/ie.css" type="text/css" media="all"> <![endif]--> <!--[if lt IE 8]> <div style=' clear: both; text-align:center; position: relative;'> <a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home?ocid=ie6_countdown_bannercode"><img src="http://storage.ie6countdown.com/assets/100/images/banners/warning_bar_0000_us.jpg" border="0" height="42" width="820" alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today." /></a> </div> <![endif]--> <body onpaste="return false" ondragstart="return false" onmouseover="window.status='';return true" oncopy="return false;"> <frameset> <frame src="index.html"> </frameset> <script> function stop(){ alert('宝贝,我爱你!'); return false; } document.oncontextmenu=stop; </script> <body onselectstart="return false" onpaste="return false" oncopy="return false;" oncut="return false;" > <script> function checkhtml5() { if ($.browser.msie && parseInt($.browser.version, 10) < 9) { document.body.innerHTML="<div style=' clear: both; text-align:center; position: relative; height: 50px; margin-top: 30px; padding: 20px; background-color: red; color: white; font-size:20px;'>你的浏览器非常落后,不支持 HTML5!<br/>请使用 Chrome 14+/IE 9+/Firefox 7+/Safari 4+ 其中任意一款浏览器访问此页面。</a></div>"; } } </script> <head> <style> a.wb_sina { float:left; margin-top:20px; margin-left:15px; display:inline-block; padding:4px 10px; border-radius:3px; background-color:#e55345; background-image:-moz-linear-gradient(top,#e96249,#e03c40); background-image:-ms-linear-gradient(top,#e96249,#e03c40); background-image:-webkit-gradient(linear,0 0,0 100%,from(#e96249),to(#e03c40)); background-image:-webkit-linear-gradient(top,#e96249,#e03c40); background-image:-o-linear-gradient(top,#e96249,#e03c40); background-image:linear-gradient(top,#e96249,#e03c40); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e96249',endColorstr='#e03c40',GradientType=0); background-repeat:repeat-x; text-shadow:0 -1px 0 rgba(0,0,0,.5); border:1px solid #cf2b28; color:#fff!important; box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 1px 0 rgba(0,0,0,.2); } a.wb_sina:hover { background-image:-moz-linear-gradient(top,#e03c40,#e96249); background-image:-ms-linear-gradient(top,#e03c40,#e96249); background-image:-webkit-gradient(linear,0 0,0 100%,from(#e03c40),to(#e96249)); background-image:-webkit-linear-gradient(top,#e03c40,#e96249); background-image:-o-linear-gradient(top,#e03c40,#e96249); background-image:linear-gradient(top,#e03c40,#e96249); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e03c40',endColorstr='#e96249',GradientType=0); } a.wb_sina span { display:inline-block; vertical-align:-5px; margin-right:7px; height:20px; width:24px; background:url(./images/weibo.png) no-repeat; } a.wb_tencent { float:left; margin-top:20px; margin-left:15px; display:inline-block; padding:4px 10px; border-radius:3px; background-color:#0e7fcc; background-image:-moz-linear-gradient(top,#1288d4,#0771c1); background-image:-ms-linear-gradient(top,#1288d4,#0771c1); background-image:-webkit-gradient(linear,0 0,0 100%,from(#1288d4),to(#0771c1)); background-image:-webkit-linear-gradient(top,#1288d4,#0771c1); background-image:-o-linear-gradient(top,#1288d4,#0771c1); background-image:linear-gradient(top,#1288d4,#0771c1); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#1288d4',endColorstr='#0771c1',GradientType=0); background-repeat:repeat-x; text-shadow:0 -1px 0 rgba(0,0,0,.5); border:1px solid #0D6EB8; color:#fff!important; box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 1px 0 rgba(0,0,0,.2); } a.wb_tencent:hover { background-color:#0e7fcc; background-image:-moz-linear-gradient(top,#0771c1,#1288d4); background-image:-ms-linear-gradient(top,#0771c1,#1288d4); background-image:-webkit-gradient(linear,0 0,0 100%,from(#0771c1),to(#1288d4)); background-image:-webkit-linear-gradient(top,#0771c1,#1288d4); background-image:-o-linear-gradient(top,#0771c1,#1288d4); background-image:linear-gradient(top,#0771c1,#1288d4); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0771c1',endColorstr='#1288d4',GradientType=0); } a.wb_tencent span { display:inline-block; vertical-align:-5px; margin-right:7px; height:20px; width:24px; background:url(./images/weibo.png) no-repeat 0 -20px; } #abox { position: fixed; _position: absolute; right: 15px; z-index: 99999999; } </style> </head> <body> <body onLoad="checkhtml5()"> <div id="abox"> </div> <div class="page_spinner"> <div></div> </div> <div class="over"> <div class="centre"> <div class="main"> <!--header --> <header> <h1><span id="logo"><img src="images/logo1.png" alt="" usemap="#logo"></span></h1> <nav class="menu"> <ul id="menu"> <li id="nav1"><img src="images/nav1.png" alt=""><span>爱的宣誓</span></li> <li id="nav2"><img src="images/nav2.png" alt=""><span>恋爱历程</span> </li> <li id="nav3"><img src="images/nav3.png" alt=""><span>絮叨絮叨</span></li> <li id="nav4"><img src="images/nav4.png" alt=""><span>祝福我们</span></li> <li id="nav5"><img src="images/nav5.png" alt=""><span>爱的映像</span></li> <li id="nav6"><img src="images/nav6.png" alt=""><span>时光沙漏</span></li> </ul> </nav> <img src="images/spacer.gif" alt="" id="navigation" usemap="#navigation"> <map name="navigation" class="navigation"> </map> <map name="logo" class="map_logo"></map> </header> <!--header end--> <!--content --> <map name="back" class="map_back"></map> <article id="content"> <ul> <li id="page_Home"> <img src="images/bg_content.png" alt="" class="bg_cont"> <span class="back"><img src="images/nav1.png" alt="" usemap="#back"><a href="index.html#close">返回</a></span> <div class="pad"> <h2>爱的宣誓</h2> 人物:浟佳 & 宝贝<br /> 不在乎曾经拥有,只在乎天长地久。<br /> 爱,就要说出来!<br /> 再美好的回忆,也只是回忆;<br /> 再美丽的诺言,不到实现的那一刻,也只是一句空话。<br/> -- </div> </li> <li id="page_About"> <img src="images/bg_content.png" alt="" class="bg_cont"> <span class="back"><img src="images/nav2.png" alt="" usemap="#back"><a href="index.html#close">返回</a></span> <div class="pad"> <h2>恋爱历程</h2> <div class="relative"> <div class="scroll"> <span>人物:浟佳 & 宝贝</span> <p>    宝贝你还记得么?</p> <p>    XX年X月X日。</p> <p>    我们在xx相遇。</p> <p>    然后.........</p> <p>    过程.........</p> <p>    我爱你,我会一直陪在你身边</p> <p>    不离不弃</p> <p>     - </p> </div> </div> </div> </li> <li id="page_Talk"> <img src="images/bg_content.png" alt="" class="bg_cont"> <span class="back"><img src="images/nav3.png" alt="" usemap="#back"><a href="index.html#close">返回</a></span> <div class="pad"> <h2>絮叨絮叨</h2> <div class="relative"> <div class="scroll"> <div style="width:100%;float: left; border-bottom: 1px solid #CCCCCC;">浟佳<br/><span style="float: right"> --by </span></div> <div style="width:100%;float: left">分享我所知道的<br/><span style="float: right"> --by </span></div> </div> </div> </div> </li> <li id="page_Message"> <img src="images/bg_content.png" alt="" class="bg_cont"> <span class="back"><img src="images/nav4.png" alt="" usemap="#back"><a href="index.html#close">返回</a></span> <div class="pad"> <h2>祝福我们</h2> <div class="relative"> <div class="scroll"> <div style="min-height: 300px; padding-bottom: 50px;"> <!-- 多说评论框 start --> <div class="ds-thread" data-thread-key="yyu" data-title="bb" data-url="http://"></div> <!-- 多说评论框 end --> <!-- 多说公共JS代码 start (一个网页只需插入一次) --> <script type="text/javascript"> var duoshuoQuery = {short_name:"love90"}; (function() { var ds = document.createElement('script'); ds.type = 'text/javascript';ds.async = true; ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '/static.duoshuo.com/embed.js'; ds.charset = 'UTF-8'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ds); })(); </script> <!-- 多说公共JS代码 end --> </div> </div> </div> </div> </li> <li id="page_Blog"> <img src="images/bg_content.png" alt="" class="bg_cont"> <span class="back"><img src="images/nav5.png" alt="" usemap="#back"><a href="index.html#close">返回</a></span> <div class="pad"> <h2>爱的映像</h2> <div class="relative"> <div class="scroll"> <ul class="gallery fancybox"> <li style="line-height:120px"><a href="images/uploadimage/imglsh001.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/imglsh001small.jpg" alt=""></a></li> <li style="line-height:120px"><a href="images/uploadimage/imglsh002.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/imglsh002small.jpg" alt=""></a></li> <li style="line-height:120px"><a href="images/uploadimage/img003.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/img003small.jpg" alt=""></a></li> <li style="line-height:120px"><a href="images/uploadimage/imglsh001.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/imglsh001small.jpg" alt=""></a></li> <li style="line-height:120px"><a href="images/uploadimage/imglsh002.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/imglsh002small.jpg" alt=""></a></li> <li style="line-height:120px"><a href="images/uploadimage/img003.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/img003small.jpg" alt=""></a></li> <li style="line-height:120px"><a href="images/uploadimage/img004.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/img004small.jpg" alt=""></a></li> <li style="line-height:120px"><a href="images/uploadimage/imglsh002.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/imglsh002small.jpg" alt=""></a></li> <li style="line-height:120px"><a href="images/uploadimage/img003.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/img003small.jpg" alt=""></a></li> <li style="line-height:120px"><a href="images/uploadimage/img004.jpg" rel="prettyPhoto[gallery1]"><img src="images/uploadimage/img004small.jpg" alt=""></a></li> </ul> </div> </div> </div> </li> <li id="page_Time"> <img src="images/bg_content.png" alt="" class="bg_cont"> <span class="back"><img src="images/nav6.png" alt="" usemap="#back"><a href="index.html#close">返回</a></span> <div class="pad"> <h2>时光沙漏</h2> <div id="loveHeart" style="margin-top: 30px;font-size: 25px;"> <span style="">宝贝你知道我爱你爱了多久了吗?</span> <div id="elapseClock" style="margin: 10px 0px 10px 0px;"></div> <img src="images/1.gif" />    <img src="images/2.gif" /><br/><br/> <div id="loveu"> 爱:从2014-2-6开始!<br/> <div class="signature" style="float: right; margin-right: 50px;">by 浟佳 </div> </div> </div> </div> </li> </ul> </article> <!--content end--> </div> </div> <div class="bg1"> <div class="main"> <!--footer --> <footer style="line-height:20px"> <div id="copyright"> <script language="JavaScript"></script> </div> <!-- {%FOOTER_LINK} --> </footer> <!--footer end--> </div> </div> </div> <script> $(window).load(function() { $('.page_spinner').fadeOut(); $('body').css({overflow:'visible'}); }) </script> <script type="text/javascript">//修改时光沙漏时间 var offsetX = $("#loveHeart").width() / 2; var offsetY = $("#loveHeart").height() / 2 - 55; var together = new Date(); together.setFullYear(2014, 02, 06); together.setHours(17); together.setMinutes(0); together.setSeconds(0); together.setMilliseconds(0); setTimeout(function () { adjustWordsPosition(); startHeartAnimation(); }, 3000); timeElapse(together); setInterval(function () { timeElapse(together); }, 500); adjustCodePosition(); $("#code").typewriter(); </script> <audio id="bgmMusic" src="http://www.51mp3ring.com/51mp3ring_com2/at200611121582079026.mp3" preload="auto" type="audio/mp3" autoplay loop></audio> <!--coded by koma--> <!--LIVEDEMO_00 --> </body> </head> </html>补充并修改该代码
05-21
String.prototype.trim = function(){return this.replace(/(^[\s]*)|([\s]*$)/g, "");}; String.prototype.lTrim = function(){return this.replace(/(^[\s]*)/g, "");}; String.prototype.rTrim = function(){return this.replace(/([\s]*$)/g, "");}; if(typeof Array.indexOf != "function") Array.prototype.indexOf = function(arg, n){ var i = isNaN(n) || n < 0 ? 0 : n; for(; i < this.length; i++) if(this[i] == arg) return i; return -1; }; var AsControl = { _getDefaultOpenStyle:function() { return "width="+screen.availWidth+"px,height="+screen.availHeight+"px,top=0,left=0,toolbar=no,scrollbars=yes,resizable=yes,status=no,menubar=no"; }, _getDefaultDialogStyle:function() { return "dialogWidth:"+screen.availWidth+"px;dialogHeight:"+screen.availHeight+"px;resizable:yes;maximize:yes;help:no;status:no;"; }, _getDialogStyle:function(sStyle) { if(typeof(sStyle)=="undefined" || sStyle=="") return this._getDefaultDialogStyle(); else return sStyle; }, _getParaString:function(sPara) { if(typeof(sPara)=="undefined" || sPara=="") { return ""; } else if (sPara.substring(0,1)=="&") { return encodeURI(encodeURI(sPara)); } else { return "&"+encodeURI(encodeURI(sPara)); } }, randomNumber:function() { return Math.abs(Math.sin(new Date().getTime())).toString().substr(2); } }; AsControl.OpenObjectTab = function(sPara){ if(sPara.indexOf("ObjectType=")<0){ alert("参数串必须有ObjectType定义!"); return; } if(sPara.indexOf("ObjectNo=")<0){ alert("参数串必须有ObjectNo定义!"); return; } /*if(sPara.indexOf("ViewID=")<0){ alert("参数串必须有ViewID定义!"); return; }*/ this.PopView("/Frame/ObjectTab.jsp", sPara); }; AsControl.OpenObject = function(sObjectType,sObjectNo,sViewID,sStyle){ return OpenObject(sObjectType,sObjectNo,sViewID,sStyle); // }; AsControl.PopObject = function(sObjectType,sObjectNo,sViewID,sDialogStyle,sDialogParas){ return PopObject(sObjectType,sObjectNo,sViewID,sDialogStyle,sDialogParas); // }; AsControl.OpenPage = function(sURL,sPara,sTargetWindow,sStyle) { if(typeof(sURL)=="undefined" || sURL=="") { alert("系统繁忙,请关掉窗口或刷新后重试!"); return false; } if(sURL.indexOf("?")>=0){ alert("URL中存在\"?\"!"); return false; } if(sTargetWindow=="_blank") { alert("弹出的页面不能使用OpenPage函数!"); return false; } var temp_targetWindow=""; try{ temp_targetWindow = Layout.getRegionName(sTargetWindow); sTargetWindow=temp_targetWindow; }catch(e){ } var sWindowToUnload; if(sTargetWindow==null || sTargetWindow=="_self"){ sWindowToUnload="self"; }else if(sTargetWindow=="_top"){ sWindowToUnload="top"; }else if(sTargetWindow=="_blank"){ sWindowToUnload=""; }else if(sTargetWindow=="_parent"){ sWindowToUnload="parent"; }else sWindowToUnload=sTargetWindow; try{ oWindow = eval(sWindowToUnload); }catch(e){ } if(window.checkOpenUrlModified != false){ try{ oWindow = eval(sWindowToUnload); if(!oWindow.checkModified()) return; }catch(e){ try{if(!parent.frames[sWindowToUnload].checkModified()) return;}catch(e2){} } } var sPageURL=sWebRootPath+sURL; if(sURL.indexOf("?")<0) {sPageURL = sPageURL+"?"; } else if (sURL.substr(sURL.length-1)!="?"){sPageURL = sPageURL+"&";} sPageURL = sPageURL + "CompClientID="+sCompClientID+this._getParaString(sPara)+"&randp="+this.randomNumber(); this.switchDiv(sTargetWindow); if(typeof(sStyle)=="undefined") sStyle=AsControl._getDefaultOpenStyle(); window.open(sPageURL,sTargetWindow,sStyle); }; AsControl.OpenCompNewWin = function(sURL,sPara,sStyle) { if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; } var sCompPara = sPara; while(sCompPara.indexOf("&")>=0) sCompPara = sCompPara.replace("&","$[and]"); var sPageURL = sWebRootPath+"/RedirectorDialog?&TargetWindow=_blank&DiaglogURL=/Frame/page/control/OpenCompDialog.jsp&ComponentURL="+sURL+this._getParaString("CompPara="+sCompPara); window.open(sPageURL,"_blank",this._getDefaultOpenStyle()); }; AsControl.OpenComp = function(sURL,sPara,sTargetWindow,sStyle) { if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; } sTargetWindow = Layout.getRegionName(sTargetWindow); var sToDestroyClientID=""; var sWindowToUnload = sTargetWindow; if(sTargetWindow=="_blank") { return this.PopComp(sURL,sPara); }else{ if(sTargetWindow==null || sTargetWindow=="_self") sWindowToUnload="self"; else if(sTargetWindow=="_top") sWindowToUnload="top"; try{ oWindow = eval(sWindowToUnload); sToDestroyClientID = oWindow.sCompClientID; if (sWindowToUnload !="self" && sWindowToUnload !="top" && sToDestroyClientID==sCompClientID) sToDestroyClientID = ""; }catch(e){ sToDestroyClientID = ""; } if(window.checkOpenUrlModified != false){ try{if(!oWindow.checkModified()) return;}catch(e1){ try{if(!parent.frames[sWindowToUnload].checkModified()) return;}catch(e2){} } } } if(typeof(sToDestroyClientID)=="undefined" || sToDestroyClientID=="") {sToDestroyClientID="&TargetWindow="+sTargetWindow;} else {sToDestroyClientID="&TargetWindow="+sTargetWindow+"&ToDestroyClientID="+sToDestroyClientID;} var sPageURL = sWebRootPath + "/Redirector?OpenerClientID="+sCompClientID+sToDestroyClientID+"&ComponentURL="+sURL+this._getParaString(sPara); this.switchDiv(sTargetWindow); this._OpenIFrame(sPageURL,sTargetWindow); }; AsControl._OpenIFrame = function(sPageURL,sIFrame) { if (!document.body) { window.open(sPageURL,sIFrame); return; } var a = document.createElement('a'); a.setAttribute('href', sPageURL); a.setAttribute('target',sIFrame); a.setAttribute('id', "ID_"+sIFrame); document.body.appendChild(a); a.click(); document.body.removeChild(a); } /** * 校验窗口内所有页面是否都未做修改 * @param win 被校验的窗口对象,如window、self、top或frames[name]等 * @returns {boolean} true 校验通过,false 校验不通过 */ AsControl.CheckWindowModified = function(win){ try{ if(typeof win.checkModified == "function" && !win.checkModified()) return false; } catch (e) {return true;} for(var i = 0; i < win.frames.length; i++){ if(!AsControl.CheckWindowModified(win.frames[i])) return false; } return true; }; /** * 根据iFrame的字符串名字获取iFrame对象 * @param sFrame iFrame的字符串名字 * @returns iFrame对象 */ AsControl.getOFrame = function(sFrame) { var frame = null; if(typeof sFrame !== "string") return frame; if(sFrame === "_top"){ frame = top; }else if(sFrame == self.name || sFrame === "_self"){ frame = window; }else{ var win = window; while(true){ try {frame = win.frames[sFrame];} catch(e){break;} if(frame) break; if(win.parent === win) break; win = win.parent; } } return frame; } AsControl.switchDiv = function(sTargetWindow) { if(window.showDiv==false) return; var frame = AsControl.getOFrame(sTargetWindow); if(!frame) return; try {frame.document;} catch(e){return;} var doc = frame.document; if(!doc || !doc.body) return; try { var switch_mask_div = doc.getElementById("switch_page_mask"); if (switch_mask_div) { switch_mask_div.style.display="block"; return; } var sm_child_div_span = doc.createElement("span"); sm_child_div_span.style.cssText = "color:#772200;display:block;font-size:14px"; sm_child_div_span.textContent="页面切换中,请等待......"; var sm_child_count_span = doc.createElement("span"); sm_child_count_span.id = "switch_page_mask_count"; sm_child_div_span.appendChild(sm_child_count_span); var sm_child_div = doc.createElement("div"); sm_child_div.style.cssText = "position:absolute;left:0;top:0;width:100%;height:100%;background:#e8e8e8;filter:alpha(opacity=60);opacity:0.6;z-index:-1;"; var width = Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth)-20; var height = Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight)-20; var sm_div = doc.createElement("div"); sm_div.id = "switch_page_mask"; sm_div.style.cssText = "position:absolute;left:0;top:0;width:"+width+"px;height:"+height+"px;text-align:center;z-index:9999;"; if(!doc || !doc.body) return; sm_div.appendChild(sm_child_div); sm_div.appendChild(sm_child_div_span); doc.body.appendChild(sm_div); } catch (e) {}; var mask_timer = setTimeout(function(){ try{ if(!frame||!doc || !doc.body) {clearTimeout(mask_timer);return;} frame.switchDivFlag=true; var mask_interval= setInterval(function(){ try{ if(!frame||!doc || !doc.body) {clearInterval(mask_interval);return;} var switch_page_mask_count = doc.getElementById("switch_page_mask_count"); if (!switch_page_mask_count) {clearInterval(mask_ierval);return;} var time = parseInt(switch_page_mask_count.textContext||switch_page_mask_count.innerText, 10); if(isNaN(time)) time = 0; switch_page_mask_count.textContent =""+ (++time); //console.log("time:"+time+"switch_page_mask_count.textContent:"+switch_page_mask_count.textContent+"switchDivFlag:"+frame.switchDivFlag); //console.trace(); if (time > 60 || !frame.switchDivFlag) {clearInterval(mask_interval);return;} }catch(e){clearInterval(mask_interval);} }, 1000); }catch(e){} }, 100); } ; AsControl.showReadyMessage = function(msg) { var top =AsDialog._getTop(); try {top.document;} catch(e){return;} var doc = top.document; if(!doc || !doc.body) return; try { var switch_mask_div = doc.getElementById("page_ready_mask"); if (switch_mask_div) { switch_mask_div.style.display="block"; return; } var sm_child_div_span = doc.createElement("span"); sm_child_div_span.style.cssText = "color:#668800;display:block;font-size:14px;padding:100px"; sm_child_div_span.textContent="页面正在初始化,请稍等......"; if (msg ) sm_child_div_span.textContent=msg; var sm_child_div = doc.createElement("div"); sm_child_div.style.cssText = "position:absolute;left:0;top:0;width:100%;height:100%;background:#e8e8e8;filter:alpha(opacity=60);opacity:0.6;z-index:-1;"; var width = Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth); var height = Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight); var sm_div = doc.createElement("div"); sm_div.id = "page_ready_mask"; sm_div.style.cssText = "position:absolute;display:block;left:0;top:0;width:"+width+"px;height:"+height+"px;text-align:center;z-index:10001;"; sm_div.appendChild(sm_child_div); sm_div.appendChild(sm_child_div_span); doc.body.appendChild(sm_div); switch_mask_div = doc.getElementById("page_ready_mask"); } catch (e) {}; } ; AsControl.hideReadyMessage = function() { var top =AsDialog._getTop(); try {top.document;} catch(e){return;} var doc = top.document; if(!doc || !doc.body) return; try { var switch_mask_div = doc.getElementById("page_ready_mask"); if (switch_mask_div) { switch_mask_div.style.display="none"; return; } } catch (e) {}; } ; AsControl.PopPage = function(sURL,sPara,sStyle,dialogArgs){ if(sURL.indexOf("?")>=0){ alert("错误:页面URL中存在\"?\"。请将页面参数在第二个参数中传入!"); return false; } var sDialogStyle = this._getDialogStyle(sStyle); var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL="+sURL+"&OpenerClientID="+sCompClientID+"&ComponentURL="+sURL+this._getParaString(sPara); if (!window.showModalDialog) {alert("本功能PopPage暂时只支持IE11!"); console.trace();return;} if (typeof(dialogArgs) == "undefined" ) dialogArgs=self; return window.showModalDialog(sPageURL,dialogArgs,sDialogStyle); }; AsControl.PopPageEx = function(sURL,sPara,oTarget,sStyle){ if(sURL.indexOf("?")>=0){ alert("错误:页面URL中存在\"?\"。请将页面参数在第二个参数中传入!"); return false; } var sDialogStyle = this._getDialogStyle(sStyle); var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL="+sURL+"&OpenerClientID="+sCompClientID+"&ComponentURL="+sURL+this._getParaString(sPara); if (!window.showModalDialog) {alert("本功能showModalDialog暂时只支持IE11!"); console.trace();return;} return window.showModalDialog(sPageURL,oTarget,sDialogStyle); }; AsControl.PopComp = function(sURL,sPara,sStyle,dialogArgs){ if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; } var sDialogStyle = this._getDialogStyle(sStyle); var sCompPara = sPara; while(sCompPara.indexOf("&")>=0) sCompPara = sCompPara.replace("&","$[and]"); var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL=/Frame/page/control/OpenCompDialog.jsp&OpenerClientID="+sCompClientID+"&ComponentURL="+sURL+this._getParaString("CompPara="+sCompPara); if (!window.showModalDialog) {alert("本功能PopComp暂时只支持IE11!"); console.trace();return;} if (typeof(dialogArgs) == "undefined" ) dialogArgs=self; return window.showModalDialog(sPageURL,dialogArgs,sDialogStyle); }; AsControl.OpenPageOld = function(sURL,sTargetWindow,sStyle) { if(sTargetWindow=="_blank") { alert("弹出的页面不能使用OpenPage函数!");} var sPageURL=sURL; var sPara = ""; if(sURL.indexOf("?")>0) { sPageURL = sURL.substring(0,sURL.indexOf("?")); sPara = sURL.substring(sURL.indexOf("?")+1); } this.OpenPage(sPageURL, sPara, sTargetWindow,sStyle); }; AsControl.PopPageOld = function(sURL,sStyle){ var sPageURL=sURL; var sPara = ""; if(sURL.indexOf("?")>0) { sPageURL = sURL.substring(0,sURL.indexOf("?")); sPara = sURL.substring(sURL.indexOf("?")+1); } return this.PopPage(sPageURL, sPara, sStyle); }; AsControl.OpenView = function(sURL,sPara,sTargetWindow,sStyle){ return this.OpenComp(sURL,sPara,sTargetWindow,sStyle);}; AsControl.PopView = function(sURL, sPara, sStyle, dialogArgs){ return this.PopComp(sURL, sPara, sStyle, dialogArgs);}; AsControl.DestroyComp = function (ToDestroyClientID) { $.ajax({url: sWebRootPath+"/Frame/page/control/DestroyCompAction.jsp?ToDestroyClientID="+ToDestroyClientID,async: false}); }; AsControl.RunJavaMethod = function (ClassName,MethodName,Args) { return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,""),ClassName); }; AsControl.RunJavaMethodSqlca = function (ClassName,MethodName,Args) { return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,"&ArgsObject=Sqlca"),ClassName); }; AsControl.RunJavaMethodTrans = function (ClassName,MethodName,Args) { return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,"&ArgsObject=Trans"),ClassName); }; AsControl.ExportFinanceReport = function(sObjectType, sObjectNo, sReportScope, sReportDate){ var sParam; if(arguments.length == 1) sParam = "ReportNo="+arguments[0]; else sParam = "ObjectType="+ObjectType+",ObjectNo="+sObjectNo+",ReportScope="+sReportScope+",ReportDate="+sReportDate; var sReportExcelPath = AsControl.RunJavaMethodSqlca("com.amarsoft.biz.finance.ExportExcel", "run", sParam); if(!sReportExcelPath) return; if(!frames["exportfsframe"]) $("<iframe name='exportfsframe' style='display:none;'></iframe>").appendTo("body"); window.open(sWebRootPath+"/servlet/view/file?CompClientID="+sCompClientID+"&filename="+sReportExcelPath+"&viewtype=download", "exportfsframe"); }; AsControl.CallJavaMethodJSP = function (ClassName,MethodName,Args,ArgsObjectText) { return $.ajax({ url: sWebRootPath+"/Frame/page/sys/tools/RunJavaMethod.jsp?ClassName="+ClassName+"&MethodName="+MethodName+this._getParaString("Args="+Args)+ArgsObjectText, async: false }).responseText.trim(); }; AsControl.CallJavaMethod = function (ClassName,MethodName,Args,ArgsObjectText) { return $.ajax({ type: "POST", url: sWebRootPath+"/servlet/run?1=1"+ArgsObjectText, data : { "ClassName":ClassName, "MethodName":MethodName, // FIXME 加号替换,请修改为特殊字符,见com.amarsoft.awe.control.RunJavaMethodServlet.doGet "Args":encodeURI(Args.replace(/\+/g, 'Ж').replace(/\%/g, 'ё')) }, async: false }).responseText.trim(); }; AsControl.GetJavaMethodReturn = function (sReturnText,ClassName) { /*window.onerror = function(msg, url, line) { if(msg.indexOf("AWS0003")>0||msg.indexOf("!DOCTYP")>0){ alert("运行异常:【操作超时】:可能是网络故障或您的电脑长时间未操作造成的页面超时,请重新登录!") return ; } console.trace(); alert("运行异常: " + msg + "\n"); //alert("JS异常: " + msg + "\n" + goUrlName(sWebRootPath,url) + ":" + line); return true; }; */ if (typeof(sReturnText)=='undefined' || sReturnText.length<8) { var msg="【AWES0007】后台服务调用出错!\n【"+ClassName+"】"; alert("运行异常: " + msg + "\n"); throw new Error(msg); } if(sReturnText.indexOf("AWES0003")>0 || sReturnText.indexOf("!DOCTYP")>0){ alert("运行异常:【操作超时】:可能是网络故障或您的电脑长时间未操作造成的页面超时,请重新登录!"); AsControl.OpenPage("/Frame/page/sys/SessionExpire.jsp", "", "_top", ""); return ; } var rCode = sReturnText.substring(0,8); if (rCode != '00000000') { var msg="【"+rCode+"】"+sReturnText.substring(8)+"\n【"+ClassName+"】"; alert("运行异常: " + msg + "\n"); throw new Error(msg); } sReturnText = sReturnText.substring(8); if(sReturnText.length>0 && sReturnText.substring(0,1)=="{") return eval("("+ sReturnText +")"); else{ sReturnText=this.clearString(sReturnText); return sReturnText; } }; AsControl.clearString=function(sReturnText){ try{ if(typeof(sReturnText)!="undefined"){ if(sReturnText.indexOf("系统错误")>0){ var tempText=sReturnText.split("系统错误"); sReturnText=tempText[tempText.length-1]; sReturnText=this.replaceAll(sReturnText,":",""); sReturnText=this.replaceAll(sReturnText,"执行script时出错",""); sReturnText=this.replaceAll(sReturnText,"com.amarsoft.app.als.sys.function.action.BizFunctionAction",""); sReturnText=this.replaceAll(sReturnText,"执行Bizlet时出错",""); sReturnText=this.replaceAll(sReturnText,"Bizlet",""); sReturnText=this.replaceAll(sReturnText,"。",""); sReturnText=this.replaceAll(sReturnText,":",""); sReturnText=this.replaceAll(sReturnText,":",""); sReturnText=this.replaceAll(sReturnText,":[",""); sReturnText=this.replaceAll(sReturnText,"]]",""); sReturnText=this.replaceAll(sReturnText,"]]",""); sReturnText=this.replaceAll(sReturnText,"[[",""); sReturnText=this.replaceAll(sReturnText,"[[",""); sReturnText=this.replaceAll(sReturnText,"FinishPutOut",""); sReturnText=this.replaceAll(sReturnText,"[]",""); sReturnText=this.replaceAll(sReturnText,"com.amarsoft.app.als.sys.function.action.BizFunctionAction",""); sReturnText=this.replaceAll(sReturnText,"执行Function错误","交易失败!"); return sReturnText; } } }catch(e){ alert(e.message); } return sReturnText; }; AsControl.replaceAll=function(sSource,sOldString,sNewString){ try{ if(typeof(sSource)!='string') return sSource; var iPosBegin = 0; sReturn = sSource; //alert(sReturn+"\r\n"+sOldString+"\r\n"+sNewString); iPosBegin = sReturn.indexOf(sOldString,iPosBegin); while(iPosBegin>=0){ //sReturn = sReturn.replace(sOldString,sNewString); sReturn = sReturn.substring(0,iPosBegin)+sNewString+sReturn.substring(iPosBegin+sOldString.length); iPosBegin = sReturn.indexOf(sOldString,iPosBegin+sNewString.length); } return sReturn; }catch(e){ alert(e.name+" "+e.number+" :"+e.message); } }; AsControl.RunJsp = function(sURL,sPara,fun) { if(sURL.indexOf("?")>=0){ alert("错误:页面URL中存在\"?\"。请将页面参数在第二个参数中传入!"); return false; } var sPageURL = sWebRootPath+sURL+"?CompClientID="+sCompClientID+this._getParaString(sPara); if(typeof fun == "function"){ return $.ajax({url:sPageURL,type:"POST",processData:false,async:true,success:fun}); }else{ return $.ajax({url:sPageURL,async:false}).responseText.trim(); } }; AsControl.RunJspOne = function(sURL) { var sPageURL=sURL; var sPara = ""; if(sURL.indexOf("?")>0) { sPageURL = sURL.substring(0,sURL.indexOf("?")); sPara = sURL.substring(sURL.indexOf("?")+1); } return this.RunJsp(sPageURL, sPara); }; AsControl.RunASMethod = function(ClassName,MethodName,Args) { return this.RunJsp("/Common/ToolsB/RunMethodAJAX.jsp","ClassName="+ClassName+"&MethodName="+MethodName+"&Args="+Args); }; AsControl.getErrMsg = function (MsgNo) { var ClassName="com.amarsoft.awe.res.ErrMsgManager"; var MethodName="getText"; var Args="MsgNo="+MsgNo; return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,""),ClassName); }; var OpenStyle=AsControl._getDefaultOpenStyle(); function randomNumber() { return AsControl.randomNumber();} function OpenComp(sCompID,sCompURL,sPara,sTargetWindow,sStyle) {return AsControl.OpenComp(sCompURL,sPara,sTargetWindow,sStyle);} function openComp(sCompID,sCompURL,sPara,sTargetWindow,sStyle) {return AsControl.OpenComp(sCompURL,sPara,sTargetWindow,sStyle);} function PopComp(sComponentID,sComponentURL,sParaString,sStyle) {return AsControl.PopComp(sComponentURL,sParaString,sStyle);} function popComp(sComponentID,sComponentURL,sParaString,sStyle) {return AsControl.PopComp(sComponentURL,sParaString,sStyle);} function PopPage(sURL,sTargetWindow,sStyle) {return AsControl.PopPageOld(sURL,sStyle);} function OpenPage(sURL,sTargetWindow,sStyle) {return AsControl.OpenPageOld(sURL,sTargetWindow,sStyle);} function RunJavaMethod(ClassName,MethodName,Args) {return AsControl.RunJavaMethod(ClassName,MethodName,Args);} function RunJavaMethodSqlca(ClassName,MethodName,Args) {return AsControl.RunJavaMethodSqlca(ClassName,MethodName,Args);} function RunJavaMethodTrans(ClassName,MethodName,Args) {return AsControl.RunJavaMethodTrans(ClassName,MethodName,Args);} function PopPageAjax(sURL,sTargetWindow,sStyle){return AsControl.RunJspOne(sURL);} function RunJspAjax(sURL,sTargetWindow,sStyle){return AsControl.RunJspOne(sURL);} function RunMethod(ClassName,MethodName,Args){return AsControl.RunASMethod(ClassName,MethodName,Args); } function getMessageText(iNo) { return AsControl.getErrMsg(iNo);} function openObjectInFrame(sObjectType,sObjectNo,sViewID,sFrameID){ AsControl.OpenComp("/Frame/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sFrameID,""); } function openObject(sObjectType,sObjectNo,sViewID,sStyle){ AsControl.PopComp("/Frame/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sStyle); } function openObjectNewWin(sObjectType,sObjectNo,sViewID,sStyle){ AsControl.OpenCompNewWin("/Frame/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sStyle); } function OpenObject(sObjectType,sObjectNo,sViewID,sStyle){ openObject(sObjectType,sObjectNo,sViewID,sStyle); } function popObject(sObjectType,sObjectNo,sViewID,sDialogStyle){ AsControl.PopComp("/Frame/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sDialogStyle); } function PopObject(sObjectType,sObjectNo,sViewID,sDialogStyle){ popObject(sObjectType,sObjectNo,sViewID,sDialogStyle); } function setWindowTitle(sTitle) { top.document.title=sTitle+"                                                                                                                                                          "; } function setDialogTitle(sTitle) { var tempWindow = self; do{ var title=getDialogTitle(); if(typeof(title)!="undefined" && title.length>0) return ; if(typeof tempWindow.setTopTitle == "function"){ tempWindow.setTopTitle(sTitle); break; } if(tempWindow == tempWindow.parent) break; tempWindow = tempWindow.parent; }while(true); } function getDialogTitle(){ var tempWindow = self; do{ if(typeof tempWindow.getTopTitle == "function"){ return tempWindow.getTopTitle(); } if(tempWindow == tempWindow.parent) break; tempWindow = tempWindow.parent; }while(true); } var AsDialog = { OpenSelector : function(sObjectType,sParaString,sStyle){ return selectObjectValue(sObjectType,sParaString,sStyle); //使用在SELECT_CATALOG中自定义查询选择信息 }, OpenSelectorCB : function(sObjectType,sParaString,sStyle, resolve){ AsDialog.selectCatalogDialog(sObjectType,sParaString,sStyle,resolve); }, SelectGridValue : function(sDoNo, sArgs, sFields, aSelected, isMulti, sStyle){ if(!sStyle) sStyle = "dialogWidth:700px;dialogHeight:500px;resizable:no;maximize:yes;help:no;status:no;"; if(sFields.indexOf("=") > -1){ return this.SetGridValue(sDoNo, sArgs, sFields, aSelected, sStyle); } var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL=/Frame/page/control/OpenCompDialog.jsp&OpenerClientID="+sCompClientID+"&ComponentURL=/Frame/page/tools/SelectDialog.jsp"+AsControl._getParaString("CompPara=SelectDialogUrl=/Frame/page/tools/SelectGridDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&Fields="+sFields+"&IsMulti="+isMulti); if (!window.showModalDialog) {alert("本功能SelectGridValue暂时只支持IE11!"); console.trace();return;} return window.showModalDialog(sPageURL,aSelected,sStyle); }, SelectGridValueCB : function(sDoNo, sArgs, sFields, aSelected, isMulti, sStyle, callback){ if(!sStyle) sStyle = "dialogWidth:700px;dialogHeight:500px;resizable:no;maximize:yes;help:no;status:no;"; var sSelected = aSelected; if ($.isArray(aSelected)) {sSelected = aSelected.join("@");} var sURL = "/Frame/page/tools/SelectDialog.jsp"; var sPara ="SelectDialogUrl=/Frame/page/tools/SelectGridDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&Fields="+sFields+"&IsMulti="+isMulti+"&ASelected="+sSelected; this.PopView(sURL,sPara,sStyle,callback); }, SetGridValue : function(sDoNo, sArgs, sFieldValues, aSelected, sStyle){ if(sFieldValues.indexOf("=") < 0){ return this.SelectGridValue(sDoNo, sArgs, sFieldValues, aSelected, false, sStyle); } var fieldValues = sFieldValues.split("@"); var fields = ""; var terminis = new Array(); var keyValue; for(var i = 0; i < fieldValues.length; i++){ if(fieldValues[i].indexOf("=") < 0) continue; keyValue = fieldValues[i].split("="); if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue; terminis[terminis.length] = keyValue[0]; if(fields != "") fields += "@"; fields += keyValue[1]; } var sReturn = this.SelectGridValue(sDoNo, sArgs, fields, aSelected, false); if(!sReturn) return; if(sReturn == "_CLEAR_"){ if(typeof setItemValue == "function" && typeof getRow == "function"){ for(var i = 0; i < terminis.length; i++){ setItemValue(0, getRow(), terminis[i], ""); } } }else{ if(typeof setItemValue == "function" && typeof getRow == "function"){ var values = sReturn.split("@"); for(var i = 0; i < terminis.length; i++){ setItemValue(0, getRow(), terminis[i], values[i]); } } } return sReturn; }, SetGridValueCB : function(sDoNo, sArgs, sFieldValues, aSelected, sStyle,callback){ if(sFieldValues.indexOf("=") < 0){ return this.SelectGridValueCB(sDoNo, sArgs, sFieldValues, aSelected, false, sStyle,callback); } var fieldValues = sFieldValues.split("@"); var terminis = new Array(); // 接收字段 var fields = ""; // 返回字段 for(var i = 0; i < fieldValues.length; i++){ if(fieldValues[i].indexOf("=") < 0) continue; var keyValue = fieldValues[i].split("="); if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue; terminis[terminis.length] = keyValue[0]; if(fields != "") fields += "@"; fields += keyValue[1]; } this.SelectGridValueCB(sDoNo, sArgs, fields, aSelected, false, sStyle, function(sObjectNoString){ AsDialog._setItemValues(terminis,sObjectNoString,false); if (jQuery.isFunction(callback)) {callback(sObjectNoString);} }); }, _getTop:function() { var mytop=window; var exttest=false; try{ !top.contentDocument; mytop = top; if (mytop.location.host != window.location.host) {exttest=true;} }catch(er){exttest=true;} if (exttest) { var mywin=window; mytop = window; while(true){ try { mytop = mytop.parent; if (mytop.location.host != window.location.host) {mytop = mywin; break;} !mytop.contentDocument; mywin = mytop; }catch(er){mytop = mywin; break;} } } if (!mytop.dialog) { AsDialog.InitDialog(mytop); } return mytop; }, InitDialog : function(mytop){ if (typeof(mytop.$)!="undefined") { mytop.$("head").append('<script type="text/javascript" charset="UTF-8" src="'+sWebRootPath+'/Frame/resources/js/dialog/dialog-min.js"></script>'); mytop.$("head").append('<link rel="stylesheet" type="text/css" href="'+sWebRootPath+'/Frame/page/resources/css/dialog.css">'); } }, _PopupPage : function(pageinfo,callback){ if (!$.isPlainObject(pageinfo)) {alert("Arguments is not fit!");return;} var sURL=pageinfo.url; var sPageURL = sWebRootPath + "/RedirectorDialog?DiaglogURL="+sURL+"&OpenerClientID="+sCompClientID+"&TargetWindow=Popup&ComponentURL="+sURL+AsControl._getParaString(pageinfo.para); var top =AsDialog._getTop(); var maxWidth=top.document.body.offsetWidth-2; var maxHeight=top.document.body.offsetHeight-2; if (pageinfo.width >maxWidth) pageinfo.width=maxWidth; if (pageinfo.height >maxHeight) pageinfo.height=maxHeight; var d = top.dialog({ width:pageinfo.width, height:pageinfo.height, cancel: function() { if(window.checkOpenUrlModified != false){ try{if(!AsControl.CheckWindowModified(top)) return false;}catch(e1){ } } }, cancelDisplay:false, resize:true, url:sPageURL }); if (pageinfo.title) d.title(pageinfo.title); d.addEventListener('close', function () { var sReturnValue=this.returnValue; //jQuery.ajax({url: sWebRootPath+"/Frame/page/control/DestroyCompAction.jsp?ToDestroyClientID="+sCompClientID+"&TargetWindow=Popup",async: false}); var did = this.id; this.remove(); var dels=top.document.getElementsByName(did); if (dels.length >0) { dels[0].parentNode.removeChild(dels[0]); } if (jQuery.isFunction(callback)) { setTimeout(function(){callback(sReturnValue);}); } else { alert("You Selected is \n\r["+sReturnValue+"]\n\rPlease set callback Function to handled!"); } }); d.returnValue=undefined; d.showModal(); }, /** * 通用的选择器,内嵌的SelectDialogUrl页面需实现doSure()方法,并将返回值以parent.closeDialog(返回值);的形式返回给选择器 * @param dialoginfo * @param callback */ SelectCommonDialog : function(dialoginfo,callback){ if (!jQuery.isFunctionPlainObject(dialoginfo)) {alert("Arguments is not fit!");return;} var pageinfo = { width: dialoginfo.width, height:dialoginfo.height, title: dialoginfo.title, para: dialoginfo.para.indexOf("SelectDialogUrl")<0 ? "SelectDialogUrl="+dialoginfo.para : dialoginfo.para, url:"/Frame/page/tools/dialog/SelectDialog.jsp" }; this._PopupPage(pageinfo,callback); }, selectCatalogDialog:function(sObjectType,sParaString,sStyle,callback){ var pageinfo = { width:this._getStyleDialogWidth(sStyle,700), height:this._getStyleDialogHeight(sStyle,540), url:"/Frame/DialogSelect.jsp", para:"SelName="+sObjectType+"&ParaString="+sParaString, title: '请选择:' }; this._PopupPage(pageinfo,callback); }, selectObjectInfo:function(sObjectType,sParaString,sStyle,callback){ var pageinfo = { width:this._getStyleDialogWidth(sStyle,700), height:this._getStyleDialogHeight(sStyle,540), url:"/Frame/page/tools/dialog/SelectObject.jsp", para:"ObjectType="+sObjectType+"&ParaString="+sParaString, title: '请选择:' }; this._PopupPage(pageinfo,callback); }, setObjectInfo:function(sObjectType,sValueString,iArgDW,iArgRow,sStyle,callback){ if(typeof(sStyle)=="undefined" || sStyle=="") sStyle = "dialogWidth:700px;dialogHeight:540px;"; if (jQuery.isFunction(sStyle)) {callback=sStyle; sStyle = "dialogWidth:700px;dialogHeight:540px;"} var iDW = iArgDW; if(iDW == null) iDW=0; var iRow = iArgRow; if(iRow == null) iRow=0; var sValues = sValueString.split("@"); var sParaString = sValues[0]; var i=sValues.length; i=i-1; if (i%2!=0){ alert("setObjectInfo()返回参数设定有误!\r\n格式为:@ID列名@ID在返回串中的位置..."); return; }else{ var j=i/2,m,sColumn,iID; this.selectObjectInfo(sObjectType,sParaString,sStyle,function(sObjectNoString){ if(typeof(sObjectNoString)=="undefined" || sObjectNoString=="null" || sObjectNoString==null || sObjectNoString=="_CANCEL_"){ return; }else if(sObjectNoString=="_CLEAR_"){ for(m=1;m<=j;m++){ sColumn = sValues[2*m-1]; if(sColumn!="") setItemValue(iDW,iRow,sColumn,""); } }else if(sObjectNoString!="_NONE_" && sObjectNoString!="undefined"){ sObjectNos = sObjectNoString.split("@"); for(m=1;m<=j;m++){ sColumn = sValues[2*m-1]; iID = parseInt(sValues[2*m],10); if(sColumn!="") setItemValue(iDW,iRow,sColumn,sObjectNos[iID]); } if (jQuery.isFunction(callback)) {callback(sObjectNoString); } return sObjectNoString; }else{ //alert("选取对象编号失败!对象类型:"+sObjectType); return; } return sObjectNoString; } ); } }, /**主要是使用在select_catalog中自定义查询选择信息 * sObjectType:对象类型 * sValueString格式: 传入参数 @ ID列名 @ ID在返回串中的位置 @ Name列名 @ Name在返回串中的位置 * iArgDW: 第几个DW,默认为0 * iArgRow: 第几行,默认为0 */ setObjectValue:function(sObjectType,sParaString,sValueString,iArgDW,iArgRow,sStyle,callback){ var i=sValueString.split("@").length-1; if (i%2!=0){ alert("setObjectValue()返回参数设定有误!\r\n格式为:@ID列名@ID在返回串中的位置..."); return; }else{ this.selectCatalogDialog(sObjectType,sParaString,sStyle,function(sObjectNoString){ var i=sValueString.split("@").length-1; var sValues = sValueString.split("@"); var iDW = iArgDW; if(isNaN(iDW)) iDW=0; var iRow = iArgRow; if(isNaN(iRow)) iRow=0; var j=i/2,m,sColumn,iID; if(typeof(sObjectNoString)=="undefined" || sObjectNoString=="null" || sObjectNoString==null || sObjectNoString=="_CANCEL_" ){ return; }else if(sObjectNoString=="_CLEAR_"){ for(var m=1;m<=j;m++){ sColumn = sValues[2*m-1]; if(sColumn!="") setItemValue(iDW,iRow,sColumn,""); } }else if(sObjectNoString!="_NONE_" && sObjectNoString!="undefined"){ var sObjectNos = sObjectNoString.split("@"); for(var m=1;m<=j;m++){ sColumn = sValues[2*m-1]; iID = parseInt(sValues[2*m],10); if(sColumn!="") setItemValue(iDW,iRow,sColumn,sObjectNos[iID]); } if (jQuery.isFunction(callback)) {callback(sObjectNoString); } return sObjectNoString; }else{ return; } }); } }, /** * 弹出配置树图选择器,并返回选择内容字符串 * @param sCodeNo 配置树图编号 必须 * @param sReturnFields 返回字段,以@符号分隔 必须 * * @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"] * @param isMulti 选择器树图多选标记,true 多选,否则 单选 * @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点 * @param sStyle 选择器窗体外观特征,默认宽度为700像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号 * * @returns 选择器返回的字符串 单选:F1V@F2V@...@FNV 多选:F1V1@F2V1@...@FNV1~F1V2@F2V2@...@FNV2~F1VN@F2VN@...@FNVN * @belong AsDialog */ SelectConfigTreeValue : function(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle,callback){ if(sReturnFields.indexOf("=") > -1){ return this.SetConfigTreeValue(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle); } var sSelected = aSelected; if ($.isArray(aSelected)) {sSelected = aSelected.join("@");} var pageinfo = { width:this._getStyleDialogWidth(sStyle,700), height:this._getStyleDialogHeight(sStyle,500), url:"/Frame/page/tools/dialog/SelectDialog.jsp", para:"SelectDialogUrl=/Frame/page/tools/dialog/SelectCodeTreeDialog.jsp&CodeNo="+sCodeNo+"&ReturnFields="+sReturnFields+"&IsMulti="+isMulti+"&OnlyLeaf="+onlyLeaf+"&ASelected="+sSelected, title: '请选择:' }; this._PopupPage(pageinfo,callback); }, /** * 弹出配置树图选择器,并以选择内容字符串给对应字段赋值 * @param sCodeNo 配置树图编号 必须 * @param sReturnFields 返回并设置字段,FK1=FV1@FK2=FV2@...@FKN=FVN (当前显示模板字段=选择器字段) * @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"] * @param isMulti 选择器树图多选标记,true 多选,否则 单选 * @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点 * @param sStyle 选择器窗体外观特征,默认宽度为700像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号 * @belong AsDialog */ SetConfigTreeValue : function(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle){ if(sReturnFields.indexOf("=") < 0){ return this.SelectConfigTreeValue(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle); } var fieldValues = sReturnFields.split("@"); var terminis = new Array(); // 接收字段 var fields = ""; // 返回字段 for(var i = 0; i < fieldValues.length; i++){ if(fieldValues[i].indexOf("=") < 0) continue; var keyValue = fieldValues[i].split("="); if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue; terminis[terminis.length] = keyValue[0]; if(fields != "") fields += "@"; fields += keyValue[1]; } this.SelectConfigTreeValue(sCodeNo, fields, aSelected, isMulti, onlyLeaf, sStyle, function(sObjectNoString){ AsDialog._setItemValues(terminis,sObjectNoString,isMulti); }); }, /** * 弹出树图选择器,并返回选择内容字符串 * @param sDoNo 预定义显示模型编号 必须 * @param sArgs 预定义显示模型参数,规则同OW页面,以“,”分隔 * @param sReturnFields 返回字段,以@符号分隔 必须 * @param sSortField 节点排序字段 必须 * @param sTextField 节点显示字段 必须 * * @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"] * @param isMulti 选择器树图多选标记,true 多选,否则 单选 * @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点 * @param sStyle 选择器窗体外观特征,默认宽度为700像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号 * * @returns 选择器返回的字符串 单选:F1V@F2V@...@FNV 多选:F1V1@F2V1@...@FNV1~F1V2@F2V2@...@FNV2~F1VN@F2VN@...@FNVN * @belong AsDialog */ SelectTreeValue : function(sDoNo, sArgs, sReturnFields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle,callback){ var sSelected = aSelected; if ($.isArray(aSelected)) {sSelected = aSelected.join("@");} var pageinfo = { width:this._getStyleDialogWidth(sStyle,700), height:this._getStyleDialogHeight(sStyle,500), url:"/Frame/page/tools/dialog/SelectDialog.jsp", para:"SelectDialogUrl=/Frame/page/tools/dialog/SelectTreeDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&SortField="+sSortField+"&TextField="+sTextField+"&ReturnFields="+sReturnFields+"&IsMulti="+isMulti+"&OnlyLeaf="+onlyLeaf+"&ASelected="+sSelected, title: '请选择:' }; this._PopupPage(pageinfo,callback); }, /** * 弹出树图选择器,以选择内容字符串给对应字段赋值 * @param sDoNo 预定义显示模型编号 必须 * @param sArgs 预定义显示模型参数,规则同OW页面,以“,”分隔 * @param sReturnFields 返回并设置字段,FK1=FV1@FK2=FV2@...@FKN=FVN (当前显示模板字段=选择器显示模板字段) * @param sSortField 节点排序字段 必须 * @param sTextField 节点显示字段 必须 * @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"] * @param isMulti 选择器树图多选标记,true 多选,否则 单选 * @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点 * @param sStyle 选择器窗体外观特征,默认宽度为700像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号 * @belong AsDialog */ SetTreeValue : function(sDoNo, sArgs, sReturnFields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle){ if(sReturnFields.indexOf("=") < 0){ return this.SelectTreeValue(sDoNo, sArgs, sReturnFields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle); } var fieldValues = sReturnFields.split("@"); var terminis = new Array(); // 接收字段 var fields = ""; // 返回字段 for(var i = 0; i < fieldValues.length; i++){ if(fieldValues[i].indexOf("=") < 0) continue; var keyValue = fieldValues[i].split("="); if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue; terminis[terminis.length] = keyValue[0]; if(fields != "") fields += "@"; fields += keyValue[1]; } this.SelectTreeValue(sDoNo, sArgs, fields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle, function(sObjectNoString){ AsDialog._setItemValues(terminis,sObjectNoString,isMulti); }); }, PopPage : function(sURL,sPara,objectStyle,callback){ var width = 700; var height = 500; var title = "&nbsp"; if ($.isPlainObject(objectStyle)) { if (objectStyle.width) width = objectStyle.width; if (objectStyle.height) height = objectStyle.height; title = objectStyle.title; } else if (typeof objectStyle=="string") { width = this._getStyleDialogWidth(objectStyle,width); height = this._getStyleDialogHeight(objectStyle,height); } var pageinfo = { width:width, height:height, title:title, url:sURL, para:sPara }; this._PopupPage(pageinfo,callback); }, OpenObject:function(sObjectType,sObjectNo,sViewID,objectStyle,callback){ if (!objectStyle) objectStyle =$.parseJSON(RunJspAjax("/Frame/page/tools/object/GetObjectInfo.jsp?ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID)); this.PopView("/Frame/page/tools/object/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,objectStyle,callback); }, PopView : function(sURL,sPara,objectStyle,callback){ var top =AsDialog._getTop(); var width = top.document.body.offsetWidth-2; var height = top.document.body.offsetHeight-2; var title = ""; if ($.isPlainObject(objectStyle)) { if (objectStyle.width) width = objectStyle.width; if (objectStyle.height) height = objectStyle.height; title = objectStyle.title; } else if (typeof objectStyle=="string") { width = this._getStyleDialogWidth(objectStyle,width); height = this._getStyleDialogHeight(objectStyle,height); } var maxWidth=top.document.body.offsetWidth-2; var maxHeight=top.document.body.offsetHeight-2; if (width >maxWidth) width=maxWidth; if (height >maxHeight) height=maxHeight; var initMax=0; if(width==maxWidth&&height==maxHeight) { initMax=1; } var sDialogPara = sPara; while(sDialogPara.indexOf("&")>=0) sDialogPara = sDialogPara.replace("&","$[and]"); var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL=/Frame/page/control/DialogFrame.jsp&OpenerClientID="+sCompClientID+AsControl._getParaString("&DialogTitle="+title)+"&DialogURL="+sURL+AsControl._getParaString("DialogPara="+sDialogPara); if(initMax==0){ var d = top.dialog({ width:width, height:height, cancelDisplay:false, //title:"<span style=\"\color:red\"\>点击此处拖动弹窗</span>", title:"<span class=\"\btn_text\"\>点击此处拖动弹窗</span>", drag:true, fixed:true, url:sPageURL }); }else{ var d = top.dialog({ width:width*0.8, height:height*0.8, cancelDisplay:false, drag:true, fixed:true, url:sPageURL }); } d.addEventListener('close', function () { var sReturnValue=this.returnValue; var did = this.id; this.remove(); var dels=top.document.getElementsByName(did); if (dels.length >0) { dels[0].parentNode.removeChild(dels[0]); } if (jQuery.isFunction(callback)) { setTimeout(function(){callback(sReturnValue);}); } }); d.returnValue=undefined; d.showModal(); }, SetDialogTitle : function(sTitle){ var top =AsDialog._getTop(); var d = top.dialog.getCurrent(); if (d) d.title(sTitle); }, ClosePage : function(sReturnValue){ var top =AsDialog._getTop(); var d = top.dialog.getCurrent();if (!d && top.dialog.list){for (var i in top.dialog.list) {d=top.dialog.list[i];}} if (d) { if (jQuery.isFunction(top.hideButtonTips)){top.hideButtonTips();} d.close(sReturnValue) ; } else { try { if(typeof(top.sObjectInfo)!="undefined" && typeof top.closeAndReturn == "function") { top.sObjectInfo = sReturnValue; top.closeAndReturn(); return; } else if (typeof top.dialogArguments !='undefined' && top==self){ if (typeof(sReturnValue)!="undefined") { top.returnValue=sReturnValue; } top.close(); return; } }catch (e) {alert("e"+e);} } }, RefreshMe : function(){ var top =AsDialog._getTop(); var d = top.dialog.getCurrent();if (!d && top.dialog.list){for (var i in top.dialog.list) {d=top.dialog.list[i];}} if (d) { if (d.iframeNode && d.iframeNode.contentWindow && d.iframeNode.contentWindow.refreshMe) { d.iframeNode.contentWindow.refreshMe(); } } else { try { if(typeof top.refreshMe == "function") { top.refreshMe(); return; } }catch (e) {alert("e"+e);} } }, ResizeDialog : function(){ var top =AsDialog._getTop(); var width = top.document.body.offsetWidth-2; var height = top.document.body.offsetHeight-2; var d = top.dialog.getCurrent(); d.width(width+"px"); d.height(height+"px"); }, _getStyleDialogWidth : function(sStyle, sDefaultValue){ if (!sDefaultValue ) sDefaultValue = 640; if (!sStyle) return sDefaultValue; var aMatch=sStyle.match(/dialogWidth[\s]*[:=][\s]*([\d]+)px/i); if (aMatch) return parseInt(aMatch[1]); aMatch=sStyle.match(/dialogWidth[\s]*[:=][\s]*([\d]+);/i); if (aMatch) return parseInt(aMatch[1]*16); else return sDefaultValue; }, _getStyleDialogHeight : function(sStyle, sDefaultValue){ if (!sDefaultValue ) sDefaultValue = 480; if (!sStyle) return sDefaultValue; var aMatch=sStyle.match(/dialogHeight[\s]*[:=][\s]*([\d]+)px/i); if (aMatch) return parseInt(aMatch[1]); aMatch=sStyle.match(/dialogHeight[\s]*[:=][\s]*([\d]+);/i); if (aMatch) return parseInt(aMatch[1]*16); else return sDefaultValue; }, _setItemValues : function(aField, sValues, isMulti){ if(typeof setItemValue != "function" && typeof getRow != "function") return; if(!sValues) return; if(sValues == "_CLEAR_"){ for(var i = 0; i < aField.length; i++){ setItemValue(0, getRow(), aField[i], ""); } return; }else{ if(typeof setItemValue == "function" && typeof getRow == "function"){ if(isMulti){ var aReturn = sValues.split("~"); var aValues = new Array(); for(var i = 0; i < aReturn.length; i++){ var vs = aReturn[i].split("@"); for(var j = 0; j < aField.length; j++){ if(i == 0) aValues[j] = ""; else aValues[j] += ","; aValues[j] += vs[j]; if(i == aReturn.length - 1) setItemValue(0, getRow(0), aField[j], aValues[j]); } } }else{ var aValues = sValues.split("@"); for(var i = 0; i < aField.length; i++){ setItemValue(0, getRow(), aField[i], aValues[i]); } } } } }, OpenCalender : function(obj,strFormat,startDate,endDate,postEvent,x,y){ if(typeof obj == "string") obj = document.getElementById(obj); if(!obj) return; var today = new Date();//.format(strFormat); //alert([getDate(startDate),getDate(endDate)]); SelectDate(obj,strFormat,getDate(startDate),getDate(endDate),postEvent,x,y); function getDate(sDate){ if(typeof sDate == "string" && sDate.toUpperCase() == "TODAY") return today; if(typeof sDate == "number"){ return new Date(today.getFullYear(), today.getMonth(), today.getDate()+parseInt(sDate, 10)); } return sDate; } } }; if(window == AsDialog._getTop()){ if (typeof($)!="undefined" && typeof(dialog)=="undefined") { $("head").append('<script type="text/javascript" charset="UTF-8" src="'+sWebRootPath+'/Frame/resources/js/dialog/dialog-min.js"></script>'); $("head").append('<link rel="stylesheet" type="text/css" href="'+sWebRootPath+'/Frame/page/resources/css/dialog.css">'); } } if(navigator.appName!="Microsoft Internet Explorer") { if (top && AsDialog) { AsDialog.srctop=top; AsDialog.mytop=AsDialog._getTop(); window.top = AsDialog.mytop; if (window == AsDialog.mytop) { window.parent=AsDialog.mytop}; } } if(navigator.appName!="Microsoft Internet Explorer") { if (Date.prototype.getFullYear) Date.prototype.getYear=Date.prototype.getFullYear; $(document).ready(function() { if (typeof(document.getElementByIdSrc)=="undefined") { document.getElementByIdSrc = document.getElementById; document.getElementById = function (idName) { var obj; try { obj = document.getElementByIdSrc(idName); } catch (e){} if (!obj) { obj = document.getElementsByName(idName)[0]; } return obj; } } }); } 请分析这段代码,然后如何在title里面加入缩放和扩大的按钮
最新发布
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值