• JS使用方法


    1.document.write(""); 输出语句 

    2.JS中的注释为// 

    3.传统的HTML文档顺序是:document->html->(head,body) 

    4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 

    5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 

    6.一个小写转大写的JS: document.getElementById("output").value = document.getElementById("input").value.toUpperCase(); 

    7.JS中的值类型:String,Number,Boolean,Null,Object,Function 

    8.JS中的字符型转换成数值型:parseInt(),parseFloat() 

    9.JS中的数字转换成字符型:(""+变量) 

    10.JS中的取字符串长度是:(length) 

    11.JS中的字符与字符相连接使用+号. 

    12.JS中的比较操作符有:==等于,!=不等于,>,>=,<.<= 

    13.JS中声明变量使用:var来进行声明 

    14.JS中的判断语句结构:if(condition){}else{} 

    15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop} 

    16.循环中止的命令是:break 

    17.JS中的函数定义:function functionName([parameter],...){statement[s]} 

    18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替. 

    19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self 

    20.状态栏的设置:window.status="字符"; 

    21.弹出提示信息:window.alert("字符"); 

    22.弹出确认框:window.confirm(); 

    23.弹出输入提示框:window.prompt(); 

    24.指定当前显示链接的位置:window.location.href="URL" 

    25.取出窗体中的所有表单的数量:document.forms.length 

    26.关闭文档的输出流:document.close(); 

    27.字符串追加连接符:+= 

    28.创建一个文档元素:document.createElement(),document.createTextNode() 

    29.得到元素的方法:document.getElementById() 

    30.设置表单中所有文本型的成员的值为空: 

    var form = window.document.forms[0] 

    for (var i = 0; i<form.elements.length;i++){ 

          if (form.elements.type == "text"){ 

              form.elements.value = ""; 

          } 

    31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE) 

    32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length 

    33.单选按钮组判断是否被选中也是用checked. 

    34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值) 

    35.字符串的定义:var myString = new String("This is lightsword"); 

    36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase(); 

    37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到. 

    38.取字符串中指定位置的一个字符:StringA.charAt(9); 

    39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6); 

    40.数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最在值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.random()*(n+1))返回随机数 

    41.定义日期型变量:var today = new Date(); 

    42.日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear()得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期几,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,dateObj.setTime(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,dateObj.setSeconds(val)设置秒   [注意:此日期时间从0开始计] 

    43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFuncVarName 

    44.parent代表父亲对象,top代表最顶端对象 

    45.打开子窗口的父窗口为:opener 

    46.表示当前所属的位置:this 

    47.当在超链接中调用JS函数时用:(javascript :)来开头后面加函数名 

    48.在老的浏览器中不执行此JS:<!--       //--> 

    49.引用一个文件式的JS:<script type="text/javascript" src="aaa.js"></script> 

    50.指定在不支持脚本的浏览器显示的HTML:<noscript></noscript> 

    51.当超链和onCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:<a href="a.html" onclick="location.href=’b.html’;return false">dfsadf</a> 

    52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,String,SyntaxError,TypeError,URIError 

    53.JS中的换行:  

    54.窗口全屏大小:<script>function fullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen;</script> 

    55.JS中的all代表其下层的全部元素 

    56.JS中的焦点顺序:document.getElementByid("表单元素").tabIndex = 1 

    57.innerHTML的值是表单元素的值:如<p id="para">"how are <em>you</em>"</p>,则innerHTML的值就是:how are <em>you</em> 

    58.innerTEXT的值和上面的一样,只不过不会把<em>这种标记显示出来. 

    59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态. 

    60.isDisabled判断是否为禁止状态.disabled设置禁止状态 

    61.length取得长度,返回整型数值 

    62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc 

    63.window.focus()使当前的窗口在所有窗口之前. 

    64.blur()指失去焦点.与FOCUS()相反. 

    65.select()指元素为选中状态. 

    66.防止用户对文本框中输入文本:onfocus="this.blur()" 

    67.取出该元素在页面中出现的数量:document.all.tags("div(或其它HTML标记符)").length 

    68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless() 

    69.状态栏文字的设置:window.status=’文字’,默认的状态栏文字设置:window.defaultStatus = ’文字.’; 

    70.添加到收藏夹:external.AddFavorite("http://www.dannyg.com";;,"jaskdlf"); 

    71.JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError; 

    72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续. 

    73.JS中的self指的是当前的窗口 

    74.JS中状态栏显示内容:window.status="内容" 

    75.JS中的top指的是框架集中最顶层的框架 

    76.JS中关闭当前的窗口:window.close(); 

    77.JS中提出是否确认的框:if(confirm("Are you sure?")){alert("ok");}else{alert("Not Ok");} 

    78.JS中的窗口重定向:window.navigate("http://www.sina.com.cn";;); 

    79.JS中的打印:window.print() 

    80.JS中的提示输入框:window.prompt("message","defaultReply"); 

    81.JS中的窗口滚动条:window.scroll(x,y) 

    82.JS中的窗口滚动到位置:window.scrollby 

    83.JS中设置时间间隔:setInterval("expr",msecDelay)或setInterval(funcRef,msecDelay)或setTimeout 

    84.JS中的模态显示在IE4+行,在NN中不行:showModalDialog("URL"[,arguments][,features]); 

    85.JS中的退出之前使用的句柄:function verifyClose(){event.returnValue="we really like you and hope you will stay longer.";}}   window.onbeforeunload=verifyClose; 

    86.当窗体第一次调用时使用的文件句柄:onload() 

    87.当窗体关闭时调用的文件句柄:onunload() 

    88.window.location的属性: protocol(http:),hostname(www.example.com),port(80),host(www.example.com:80),pathname("/a/a.html"),hash("#giantGizmo",指跳转到相应的锚记),href(全部的信息) 

    89.window.location.reload()刷新当前页面. 

    90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL) 

    91.document.write()不换行的输出,document.writeln()换行输出 

    92.document.body.noWrap=true;防止链接文字折行. 

    93.变量名.charAt(第几位),取该变量的第几位的字符. 

    94."abc".charCodeAt(第几个),返回第几个字符的ASCii码值. 

    95.字符串连接:string.concat(string2),或用+=进行连接 

    96.变量.indexOf("字符",起始位置),返回第一个出现的位置(从0开始计算) 

    97.string.lastIndexOf(searchString[,startIndex])最后一次出现的位置. 

    98.string.match(regExpression),判断字符是否匹配. 

    99.string.replace(regExpression,replaceString)替换现有字符串. 

    100.string.split(分隔符)返回一个数组存储值. 

    101.string.substr(start[,length])取从第几位到指定长度的字符串. 

    102.string.toLowerCase()使字符串全部变为小写. 

    103.string.toUpperCase()使全部字符变为大写. 

    104.parseInt(string[,radix(代表进制)])强制转换成整型. 

    105.parseFloat(string[,radix])强制转换成浮点型. 

    106.isNaN(变量):测试是否为数值型. 

    107.定义常量的关键字:const,定义变量的关键字:var

    108.getElementsByclassName,获取元素class名称.

    ==================================================

    JS之Window对象

    一.说明:他是JS中最大的对象,它描述的是一个浏览器窗口,一般要引用他的属性和方法时,不需要用“Window.XXX”这种形式,而是直接使用“XXX”。一个框架页面也是一个窗口。

    二.Window窗口对象有如下属性。

       1.name 窗口的名称,由打开它的连接(<a target="...">)或框架页(<frame name="...">)或某一个窗口调用的 open() 方法(见下)决定。一般我们不会用这个属性。

       2.status 指窗口下方的“状态栏”所显示的内容。通过对 status 赋值,可以改变状态栏的显示。

       3.opener 用法:window.opener;返回打开本窗口的窗口对象。注意:返回的是一个窗口对象。如果窗口不是由其他窗口打开的,在 Netscape 中这个属性返回 null;在 IE 中返回“未定义”(undefined)。undefined 在一定程度上等于 null。注意:undefined 不是 JavaScript 常数,如果你企图使用“undefined”,那就真的返回“未定义”了。
       4.self 指窗口本身,它返回的对象跟 window 对象是一模一样的。最常用的是“self.close()”,放在<a>标记中:“<a href="javascript:self.close()">关闭窗口</a>”。
       5.parent 返回窗口所属的框架页对象。

       6.top 返回占据整个浏览器窗口的最顶端的框架页对象。

    三.Window窗口对象有如下方法。

       1.open(<URL字符串>, <窗口名称字符串>, <参数字符串>);

       说明:

    <URL字符串>:描述所打开的窗口打开哪一个网页。如果留空(''),则不打开任意网页。 
    <窗口名称字符串>:描述被打开的窗口的名称(window.name),可以使用'_top'、'_blank'等内建名称。这里的名称跟“<a href="..." target="...">”里的“target”属性是一样的。 
    <参数字符串>:描述被打开的窗口的样貌。如果只需要打开一个普通窗口,该字符串留空(''),如果要指定样貌,就在字符串里写上一到多个参数,参数之间用逗号隔开。
    例:打开一个 400 x 100 的干净的窗口:open('','_blank','width=400,height=100,menubar=no,toolbar=no,
    location=no,directories=no,status=no, scrollbars=yes,resizable=yes') 
    open()的参数

    top=# 窗口顶部离开屏幕顶部的像素数 
    left=# 窗口左端离开屏幕左端的像素数 
    width=# 窗口的宽度 
    height=# 窗口的高度 
    menubar=... 窗口有没有菜单,取值yes或no 
    toolbar=... 窗口有没有工具条,取值yes或no 
    location=... 窗口有没有地址栏,取值yes或no 
    directories=... 窗口有没有连接区,取值yes或no 
    scrollbars=... 窗口有没有滚动条,取值yes或no 
    status=... 窗口有没有状态栏,取值yes或no 
    resizable=... 窗口给不给调整大小,取值yes或no 
    注意:open() 方法有返回值,返回的就是它打开的窗口对象。比如

    var newWindow = open('','_blank');

    这样把一个新窗口赋值到“newWindow”变量中,以后通过“newWindow”变量就可以控制窗口了。
    close() 关闭一个已打开的窗口。

    blur() 使焦点从窗口移走,窗口变为“非活动窗口”。 
    focus() 是窗口获得焦点,变为“活动窗口”。不过在 Windows 98,该方法只能使窗口的标题栏和任务栏上的相应按钮闪烁,提示用户该窗口正在试图获得焦点。 
    scrollTo() 用法:[<窗口对象>.]scrollTo(x, y);使窗口滚动,使文档从左上角数起的(x, y)点滚动到窗口的左上角。 
    scrollBy() 用法:[<窗口对象>.]scrollBy(deltaX, deltaY);使窗口向右滚动 deltaX 像素,向下滚动 deltaY 像素。如果取负值,则向相反的方向滚动。 
    resizeTo() 用法:[<窗口对象>.]resizeTo(width, height);使窗口调整大小到宽 width 像素,高 height 像素。 
    resizeBy() 用法:[<窗口对象>.]resizeBy(deltaWidth, deltaHeight);使窗口调整大小,宽增大 deltaWidth 像素,高增大 deltaHeight 像素。如果取负值,则减少。 
    alert() 用法:alert(<字符串>);弹出一个只包含“确定”按钮的对话框,显示<字符串>的内容,整个文档的读取、Script 的运行都会暂停,直到用户按下“确定”。 
    confirm() 用法:confirm(<字符串>);弹出一个包含“确定”和“取消”按钮的对话框,显示<字符串>的内容,要求用户做出选择,整个文档的读取、Script 的运行都会暂停。如果用户按下“确定”,则返回 true 值,如果按下“取消”,则返回 false 值。 
    prompt() 用法:prompt(<字符串>[, <初始值>]);弹出一个包含“确认”“取消”和一个文本框的对话框,显示<字符串>的内容,要求用户在文本框输入一些数据,整个文档的读取、Script 的运行都会暂停。如果用户按下“确认”,则返回文本框里已有的内容,如果用户按下“取消”,则返回 null 值。如果指定<初始值>,则文本框里会有默认值。 
    四.Window窗口对象有如下事件:
    window.onload;发生在文档全部下载完毕的时候。全部下载完毕意味着不但 HTML 文件,而且包含的图片,插件,控件,小程序等全部内容都下载完毕。本事件是 window 的事件,但是在 HTML 中指定事件处理程序的时候,我们是把它写在<body>标记中的。
    window.onunload;发生在用户退出文档(或者关闭窗口,或者到另一个页面去)的时候。与 onload 一样,要写在 HTML 中就写到<body>标记里。

    window.onresize;发生在窗口被调整大小的时候。 
    window.onblur;发生在窗口失去焦点的时候。 
    window.onfocus;发生在窗口得到焦点的时候。 
    window.onerror;发生在错误发生的时候。它的事件处理程序通常就叫做“错误处理程序”(Error Handler),用来处理错误。上边已经介绍过,要忽略一切错误,就使用: 
    function ignoreError() {
      return true;
    }
    window.onerror = ignoreError;

    ============================================================

    js获取url参数值

    方法一:正则分析法

    function getQueryString(name) {

        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");

        var r = window.location.search.substr(1).match(reg);

        if (r != null) return unescape(r[2]); return null;

        }

    调用:

    alert(GetQueryString("参数名1"));

    alert(GetQueryString("参数名2"));

    alert(GetQueryString("参数名3"));

    方法二:

    <span style="font-size: 16px;"><Script language="javascript">

    function GetRequest() {

       var url = location.search; //获取url中"?"符后的字串

       var theRequest = new Object();

       if (url.indexOf("?") != -1) {

          var str = url.substr(1);

          strs = str.split("&");

          for(var i = 0; i < strs.length; i ++) {

             theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);

          }

       }

       return theRequest;

    }

    </Script></span>

    这样调用:

    <Script language="javascript">

    var Request = new Object();

    Request = GetRequest();

    var 参数1,参数2,参数3,参数N;

    参数1 = Request['参数1'];

    参数2 = Request['参数2'];

    参数3 = Request['参数3'];

    参数N = Request['参数N'];

    </Script>

    ==================================================================

    JS获取屏幕大小

    <html>

    <script>

    function a(){

    document.write(

    "屏幕分辨率为:"+screen.width+"*"+screen.height

    +"<br />"+

    "屏幕可用大小:"+screen.availWidth+"*"+screen.availHeight

    +"<br />"+

    "网页可见区域宽:"+document.body.clientWidth

    +"<br />"+

    "网页可见区域高:"+document.body.clientHeight

    +"<br />"+

    "网页可见区域宽(包括边线的宽):"+document.body.offsetWidth 

    +"<br />"+

    "网页可见区域高(包括边线的宽):"+document.body.offsetHeight 

    +"<br />"+

    "网页正文全文宽:"+document.body.scrollWidth

    +"<br />"+

    "网页正文全文高:"+document.body.scrollHeight

    +"<br />"+

    "网页被卷去的高:"+document.body.scrollTop

    +"<br />"+

    "网页被卷去的左:"+document.body.scrollLeft

    +"<br />"+

    "网页正文部分上:"+window.screenTop

    +"<br />"+

    "网页正文部分左:"+window.screenLeft

    +"<br />"+

    "屏幕分辨率的高:"+window.screen.height

    +"<br />"+

    "屏幕分辨率的宽:"+window.screen.width

    +"<br />"+

    "屏幕可用工作区高度:"+window.screen.availHeight

    +"<br />"+

    "屏幕可用工作区宽度:"+window.screen.availWidth

    );

    }

    </script>

    <body onload="a()" >

    </body>

    </html>

    ================================================================

    经典的选项卡原生js代码

    <script type="text/javascript">

    function setContentTab(name, curr, n) {

        for (i = 1; i <= n; i++) {

            var menu = document.getElementById(name + i);

            var cont = document.getElementById("con_" + name + "_" + i);

            menu.className = i == curr ? "current" : "";

            if (i == curr) {

                cont.style.display = "block";

            } else {

                cont.style.display = "none";

            }

        }

    }

    </script> 

    <style type="text/css">

    /*全局样式*/

    *{font-size:12px;}

    body{margin:0;padding:0;font-size:12px;color:#666666;font-family:"宋体",Arial, Helvetica, sans-serif;}

    a{color:#5e5e5;text-decoration:none;}

    a:hover{color:#3366cc;text-decoration:underline;}

    /*主导航菜单*/

    #menu ul{padding:0;border:0;list-style:none;line-height:150%;margin-top:0;margin-right:0;margin-bottom:0;margin-left:15px;}

    #menu_out{966px;padding-left:4px;margin:50px auto;background:url(images/menu_left.gif) no-repeat left top;}

    #menu_in{background:url(images/menu_right.gif) no-repeat right top;padding-right:4px;}

    #menu{background:url(images/menu_bg.gif) repeat-x;height:73px;}

    .menu_line{background:url(images/menu_line.gif) no-repeat center top;8px;}

    .menu_line2{background:url(images/menu_line2.gif) no-repeat center top;15px;}

    #nav{padding-left:20px;}

    #nav li{float:left;height:35px;}

    #nav li a{float:left;display:block;padding-left:6px;height:35px;background:url(images/menu_on_left.gif) no-repeat left top;cursor:pointer;text-decoration:none;}

    #nav li a span{float:left;padding:11px 14px 10px 10px;line-height:14px;background:url(images/menu_on_right.gif) no-repeat right top;font-size:14px;font-weight:bold;color:#FFFFFF;text-decoration:none;}

    #nav li .current{background-position:left 100%;}

    #nav li .current span{background-position:right 100%;color:#333333;text-decoration:none;padding:14px 14px 7px 10px;}

    /*子栏目*/

    #menu_con{text-align:left;padding-left:20px;clear:both;}

    #menu_con li{float:left;height:22px;margin-top:8px;}

    #menu_con li a{display:block;float:left;background:url(images/menu_on_left2.gif) no-repeat left top;cursor:pointer;padding-left:3px;}

    #menu_con li a span{float:left;padding:6px 10px 4px 10px;line-height:12px;background:url(images/menu_on_right2.gif) no-repeat right top;}

    #menu_con li a:hover{text-decoration:none;background:url(images/menu_on_left2.gif) no-repeat left bottom;}

    #menu_con li a:hover span{background:url(images/menu_on_right2.gif) no-repeat right bottom;}

    </style>

    <div id="menu_out">

    <div id="menu_in">

    <div id="menu">

    <ul id="nav">

    <li><a href="#" id="one1" onmouseover="setContentTab('one',1,6)" class="current"><span>首 页</span></a></li>

    <li class="menu_line"></li>

    <li><a href="#" id="one2" onmouseover="setContentTab('one',2,6)"><span>jquery 特效</span></a></li>

    <li class="menu_line"></li>

    <li><a href="#" id="one3" onmouseover="setContentTab('one',3,6)"><span>javascript特效</span></a></li>

    <li class="menu_line"></li>

    <li><a href="#" id="one4" onmouseover="setContentTab('one',4,6)"><span>flash特效</span></a></li>

    <li class="menu_line"></li>

    <li><a href="#" id="one5" onmouseover="setContentTab('one',5,6)"><span>div+css教程</span></a></li>

    <li class="menu_line"></li>

    <li><a href="#" id="one6" onmouseover="setContentTab('one',6,6)"><span>html5教程</span></a></li>

    </ul><!--nav end-->

    <div id="menu_con">

    <div id="con_one_1" style="display:block">

    <ul>

    <li>jsfoot 网页特效主要有jquery 特效 js特效 flash特效 div+css教程 html5教程</li>

    </ul>

    </div> 

    <div id="con_one_2" style="display:none">

    <ul>

    <li><a href="#"><span>jquery图片特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>jquery导航菜单</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>jquery选项卡特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>jquery文字特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>jquery表单特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>jquery表格特效</span></a></li>

    </ul>

    </div>

    <div id="con_one_3" style="display:none">

    <ul>

    <li><a href="#"><span>js图片特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>js导航菜单</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>js选项卡特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>js文字特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>js表单特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>js表格特效</span></a></li>

    </ul>

    </div>

    <div id="con_one_4" style="display:none">

    <ul>

    <li><a href="#"><span>flash图片特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>flash导航菜单</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>flash文字特效</span></a></li>

    </ul>

    </div>

    <div id="con_one_5" style="display:none">

    <ul>

    <li><a href="#"><span>div+css布局</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>div+css菜单</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>css3教程</span></a></li>

    </ul>

    </div>

    <div id="con_one_6" style="display:none">

    <ul>

    <li><a href="#"><span>html5特效</span></a></li>

    <li class="menu_line2"></li>

    <li><a href="#"><span>html5图表</span></a></li>

    </ul>

    </div>

    </div><!--menu_con end-->

    </div><!--menu end-->

    </div>

    </div>

  • 相关阅读:
    java Spring 基于注解的配置(一)
    java Spring 在WEB应用中的实例化
    java Spring 生命周期
    java Spring bean作用域
    java Spring集合
    java Spring配置数据单元
    Velocity 入门(一)
    java strtus2 DynamicMethodInvocation配置(二)
    Android WindowManager 小结
    Android 快速选择联系人
  • 原文地址:https://www.cnblogs.com/Yue0327/p/5441773.html
Copyright © 2020-2023  润新知