我思故我強

          Javascript 技巧大全

          Event 事件?

          事件源對象
          event.srcElement.tagName
          event.srcElement.type
          捕獲釋放
          event.srcElement.setCapture();
          event.srcElement.releaseCapture();
          事件按鍵
          event.keyCode
          event.shiftKey
          event.altKey
          event.ctrlKey
          事件返回值
          event.returnValue
          鼠標位置
          event.x
          event.y

          document 對象

          窗體活動元素
          document.activeElement
          綁定事件
          document.captureEvents(Event.KEYDOWN);
          訪問窗體元素
          document.all("txt").focus();
          document.all("txt").select();
          窗體命令
          document.execCommand
          窗體COOKIE
          document.cookie
          菜單事件
          document.oncontextmenu
          創建元素
          document.createElement("SPAN");
          根據鼠標獲得元素
          document.elementFromPoint(event.x,event.y).tagName=="TD"
          document.elementFromPoint(event.x,event.y).appendChild(ms)
          窗體圖片
          document.images[索引]
          窗體事件綁定
          document.onmousedown=scrollwindow;
          元素
          document.窗體.elements[索引]
          對象綁定事件
          document.all.xxx.detachEvent('onclick',a);
          HTML標簽
          document.documentElement.innerHTML
          第一個style標簽
          document.styleSheets[0]
          style標簽里的第一個樣式
          document.styleSheets[0].rules[0]
          獲取選中內容
          document.selection.createRange().duplicate().text

          插件數目
          navigator.plugins
          取變量類型
          typeof($js_libpath) == "undefined"
          下拉框
          下拉框.options[索引]
          下拉框.options.length
          查找對象
          document.getElementsByName("r1");
          document.getElementById(id);
          定時
          timer=setInterval('scrollwindow()',delay);
          clearInterval(timer);
          UNCODE編碼
          escape(),unescape
          父對象
          obj.parentElement(dhtml)
          obj.parentNode(dom)
          交換表的行
          TableID.moveRow(2,1)
          替換CSS
          document.all.csss.href = "a.css";
          并排顯示
          display:inline
          隱藏焦點
          hidefocus=true
          根據寬度換行
          style="word-break:break-all"
          讓英文字符串超出表格寬度自動換行
          word-wrap: break-word; word-break: break-all;
          框架透明背景
          <iframe src="1.htm" width=300 height=180 allowtransparency></iframe>
          獲得style內容
          obj.style.cssText

          自動刷新
          <meta HTTP-EQUIV="refresh" CONTENT="8;URL=http://www.playes.net">
          簡單郵件
          <a href="mailto:aaa@bbb.com?subject=ccc&body=xxxyyy">MailMe</a>
          快速轉到位置
          obj.scrollIntoView(true)

          <a name="first">
          <a href="#first">anchors</a>
          網頁傳遞參數
          location.search();
          可編輯
          obj.contenteditable=true
          執行菜單命令
          obj.execCommand
          雙字節字符
          /[^\x00-\xff]/
          漢字
          /[\u4e00-\u9fa5]/
          防止點擊空鏈接時,頁面往往重置到頁首端
          <a href="javascript:function()">word</a>

          上一網頁源
          asp:request.servervariables("HTTP_REFERER")
          javascript:document.referrer
          釋放內存
          CollectGarbage();
          禁止右鍵
          document.oncontextmenu = function() { return false;}
          禁止保存
          <noscript><iframe src="*.htm"></iframe></noscript>
          禁止選取
          <body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false"onmouseup="document.selection.empty()>
          禁止粘貼
          <input type=text onpaste="return false">
          地址欄圖標
          <link rel="Shortcut Icon" href="favicon.ico">
          favicon.ico 名字最好不變16*16的16色,放虛擬目錄根目錄下
          收藏欄圖標
          <link rel="Bookmark" href="favicon.ico">
          查看源碼
          <input type="button" value="查看網頁源代碼" onclick="window.location = 'view-source:'+'http://www.csdn.net/'">
          關閉輸入法
          <input style="ime-mode:disabled">
          自動全選
          <input type=text name=text1 value="123" onfocus="this.select()">
          ENTER鍵可以讓光標移到下一個輸入框
          <input onkeydown="if(event.keyCode==13)event.keyCode=9">
          文本框的默認值
          <input type=text value="123" onfocus="alert(this.defaultValue)">
          checkbox扁平
          <input type=checkbox style="position: absolute; clip:rect(5px 15px 15px 5px)"><br>
          自動完成功能
          <input type=text autocomplete=on>打開該功能
          <input type=text autocomplete=off>關閉該功能

          title換行
          obj.title = "123&#13sdfs&#32"
          獲得時間所代表的微秒
          var n1 = new Date("2004-10-10".replace(/-/g, "\/")).getTime()
          窗口是否關閉
          win.closed
          窗口最大化
          <body onload="window.resizeTo(window.screen.width - 4,window.screen.height-50);window.moveTo(-4,-4)">
          無關閉按鈕IE
          window.open("aa.htm", "meizz", "fullscreen=7");
          統一編碼/解碼
          alert(decodeURIComponent(encodeURIComponent("encodeURIComponent對":"、"/"、";" 和 "?"也編碼
          表格行指示
          <tr onmouseover="this.bgColor='#f0f0f0'" onmouseout="this.bgColor='#ffffff'">

          各種尺寸

          s? +=? "\r\n網頁可見區域寬:"+? document.body.clientWidth;
          s? +=? "\r\n網頁可見區域高:"+? document.body.clientHeight;
          s? +=? "\r\n網頁可見區域高:"+? document.body.offsetWeight? +"? (包括邊線的寬)";
          s? +=? "\r\n網頁可見區域高:"+? document.body.offsetHeight? +"? (包括邊線的寬)";
          s? +=? "\r\n網頁正文全文寬:"+? document.body.scrollWidth;
          s? +=? "\r\n網頁正文全文高:"+? document.body.scrollHeight;
          s? +=? "\r\n網頁被卷去的高:"+? document.body.scrollTop;
          s? +=? "\r\n網頁被卷去的左:"+? document.body.scrollLeft;
          s? +=? "\r\n網頁正文部分上:"+? window.screenTop;
          s? +=? "\r\n網頁正文部分左:"+? window.screenLeft;
          s? +=? "\r\n屏幕分辨率的高:"+? window.screen.height;
          s? +=? "\r\n屏幕分辨率的寬:"+? window.screen.width;
          s? +=? "\r\n屏幕可用工作區高度:"+? window.screen.availHeight;
          s? +=? "\r\n屏幕可用工作區寬度:"+? window.screen.availWidth;

          過濾數字

          <input type=text onkeypress="return event.keyCode>=48&&event.keyCode<=57||(this.value.indexOf('.')<0?event.keyCode==46:false)" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false">

          特殊用途

          <input type=button value=導入收藏夾 onclick="window.external.ImportExportFavorites(true,'http://www.google.com/');">
          <input type=button value=導出收藏夾 onclick="window.external.ImportExportFavorites(false,'http://www.google.com/');">
          <input type=button value=整理收藏夾 onclick="window.external.ShowBrowserUI('OrganizeFavorites', null)">
          <input type=button value=語言設置?? onclick="window.external.ShowBrowserUI('LanguageDialog', null)">
          <input type=button value=加入收藏夾 onclick="window.external.AddFavorite('http://www.google.com/', 'google')">
          <input type=button value=加入到頻道 onclick="window.external.addChannel('http://www.google.com/')">
          <input type=button value=加入到頻道 onclick="window.external.showBrowserUI('PrivacySettings',null)">

          不緩存

          <META HTTP-EQUIV="pragma" CONTENT="no-cache">
          <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
          <META HTTP-EQUIV="expires" CONTENT="0">

          正則匹配

          匹配中文字符的正則表達式: [\u4e00-\u9fa5]
          匹配雙字節字符(包括漢字在內):[^\x00-\xff]
          匹配空行的正則表達式:\n[\s| ]*\r
          匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/
          匹配首尾空格的正則表達式:(^\s*)|(\s*$)(像vbscript那樣的trim函數)
          匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
          匹配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

          以下是例子:
          利用正則表達式限制網頁表單里的文本框輸入內容:
          用正則表達式限制只能輸入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
          1.用正則表達式限制只能輸入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
          2.用正則表達式限制只能輸入數字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
          3.用正則表達式限制只能輸入數字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

          消除圖像工具欄

          <IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="false">
          or
          <head>
          <meta http-equiv="imagetoolbar" content="no">
          </head>

          無提示關閉

          function Close(){
          ?var ua=navigator.userAgent
          ?var ie=navigator.appName=="Microsoft Internet Explorer"?true:false
          ?if(ie)
          ?{
          ? var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE "))))
          ? if(IEversion< 5.5)
          ? {
          ?? var str? = '<object id=noTipClose classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">'
          ?????? str += '<param name="Command" value="Close"></object>';
          ?????? document.body.insertAdjacentHTML("beforeEnd", str);
          ?????? document.all.noTipClose.Click();
          ? }
          ??? else
          ? {
          ?????? window.opener =null;
          ?????? window.close();
          ????? }
          ?? }
          ?else
          ?{
          ? window.close()
          ?? }
          }

          取得控件得絕對位置

          <script language="javascript">
          function getoffset(e){
          ?var t=e.offsetTop;
          ?var l=e.offsetLeft;
          ?while(e=e.offsetParent)
          ?{
          ? t+=e.offsetTop;
          ? l+=e.offsetLeft;
          ?}
          ?var rec = new Array(1);
          ?rec[0]? = t;
          ?rec[1] = l;
          ?return rec
          }
          </script>

          最小化,最大化,關閉

          <object id=min classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
          <param name="Command" value="Minimize"></object>
          <object id=max classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
          <param name="Command" value="Maximize"></object>
          <OBJECT id=close classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
          <PARAM NAME="Command" value="Close"></OBJECT>
          <input type=button value=最小化 onclick=min.Click()>
          <input type=button value=最大化 onclick=max.Click()>
          <input type=button value=關閉 onclick=close.Click()>

          光標停在文字最后

          <script language="javascript">
          function cc()
          {
          ?var e = event.srcElement;
          ?var r =e.createTextRange();
          ?r.moveStart('character',e.value.length);
          ?r.collapse(true);
          ?r.select();
          }
          </script>
          <input type=text name=text1 value="123" onfocus="cc()">

          頁面進入和退出的特效

          進入頁面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
          推出頁面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)">
          這個是頁面被載入和調出時的一些特效。duration表示特效的持續時間,以秒為單位。transition表示使
          用哪種特效,取值為1-23:
            0 矩形縮小
            1 矩形擴大
            2 圓形縮小
            3 圓形擴大
            4 下到上刷新
            5 上到下刷新
            6 左到右刷新
            7 右到左刷新
            8 豎百葉窗
            9 橫百葉窗
            10 錯位橫百葉窗
            11 錯位豎百葉窗
            12 點擴散
            13 左右到中間刷新
            14 中間到左右刷新
            15 中間到上下
            16 上下到中間
            17 右下到左上
            18 右上到左下
            19 左上到右下
            20 左下到右上
            21 橫條
            22 豎條
            23

          網頁是否允許被搜索引擎機器人檢索

          <meta name="ROBOTS" content="屬性值">
            其中屬性值有以下一些:
            屬性值為"all": 文件將被檢索,且頁上鏈接可被查詢;
            屬性值為"none": 文件不被檢索,而且不查詢頁上的鏈接;
            屬性值為"index": 文件將被檢索;
            屬性值為"follow": 查詢頁上的鏈接;
            屬性值為"noindex": 文件不檢索,但可被查詢鏈接;
            屬性值為"nofollow": 全部不允許。

          打印分頁

          <p style="page-break-after:always">page1</p>
          <p style="page-break-after:always">page2</p>

          設置打印

          <object id="factory" style="display:none" viewastext
          ? classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
          ? codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360"></object>
          <input type=button value=頁面設置 onclick="factory.printing.PageSetup()">
          <input type=button value=打印預覽 onclick="factory.printing.Preview()">
          <script language=javascript>
          function window.onload()
          {
          ?? // -- advanced features
          ?? factory.printing.SetMarginMeasure(2) // measure margins in inches
          ?? factory.printing.SetPageRange(false, 1, 3) // need pages from 1 to 3
          ?? factory.printing.printer = "HP DeskJet 870C"
          ?? factory.printing.copies = 2
          ?? factory.printing.collate = true
          ?? factory.printing.paperSize = "A4"
          ?? factory.printing.paperSource = "Manual feed"
          ?? // -- basic features
          ?? factory.printing.header = "居左顯示&b居中顯示&b居右顯示頁碼,第&p頁/共&P頁"
          ?? factory.printing.footer = "(自定義頁腳)"
          ?? factory.printing.portrait = false
          ?? factory.printing.leftMargin = 0.75
          ?? factory.printing.topMargin = 1.5
          ?? factory.printing.rightMargin = 0.75
          ?? factory.printing.bottomMargin = 1.5
          }
          function Print(frame) {
          ? factory.printing.Print(true, frame) // print with prompt
          }
          </script>
          <input type=button value="打印本頁" onclick="factory.printing.Print(false)">
          <input type=button value="頁面設置" onclick="factory.printing.PageSetup()">
          <input type=button value="打印預覽" onclick="factory.printing.Preview()"><br>
          <a target=_blank>具體使用手冊,更多信息,點這里</a>

          自帶的打印預覽

          WebBrowser.ExecWB(1,1) 打開
          Web.ExecWB(2,1) 關閉現在所有的IE窗口,并打開一個新窗口
          Web.ExecWB(4,1) 保存網頁
          Web.ExecWB(6,1) 打印
          Web.ExecWB(7,1) 打印預覽
          Web.ExecWB(8,1) 打印頁面設置
          Web.ExecWB(10,1) 查看頁面屬性
          Web.ExecWB(15,1) 好像是撤銷,有待確認
          Web.ExecWB(17,1) 全選
          Web.ExecWB(22,1) 刷新
          Web.ExecWB(45,1) 關閉窗體無提示
          <style media=print>
          .Noprint{display:none;}<!--用本樣式在打印時隱藏非打印項目-->
          .PageNext{page-break-after: always;}<!--控制分頁-->
          </style>
          <object? id="WebBrowser"? width=0? height=0? classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
          </object>
          <center class="Noprint" >
          <input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)>
          <input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>
          <input type=button value=頁面設置 onclick=document.all.WebBrowser.ExecWB(8,1)>
          </p>
          <p> <input type=button value=打印預覽 onclick=document.all.WebBrowser.ExecWB(7,1)>
          </center>

          去掉打印時的頁眉頁腳

          <script? language="JavaScript">
          var HKEY_Root,HKEY_Path,HKEY_Key;
          HKEY_Root="HKEY_CURRENT_USER";
          HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
          //設置網頁打印的頁眉頁腳為空
          function PageSetup_Null()
          {
          ?try
          ?{
          ? var Wsh=new ActiveXObject("WScript.Shell");
          ? HKEY_Key="header";
          ? Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
          ? HKEY_Key="footer";
          ? Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
          ?}
          ?catch(e){}
          }

          設置網頁打印的頁眉頁腳為默認值

          function? PageSetup_Default()
          {
          ?try
          ?{
          ? var Wsh=new ActiveXObject("WScript.Shell");
          ? HKEY_Key="header";
          ? Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b頁碼,&p/&P");
          ? HKEY_Key="footer";
          ? Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d");
          ?}
          ?catch(e){}
          }
          </script>
          <input type="button" value="清空頁碼" onclick=PageSetup_Null()>
          <input type="button" value="恢復頁碼" onclick=PageSetup_Default()>

          瀏覽器驗證

          function checkBrowser()
          {
          ?? this.ver=navigator.appVersion
          ?? this.dom=document.getElementById?1:0
          ?? this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
          ?? this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
          ?? this.ie4=(document.all && !this.dom)?1:0;
          ?? this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
          ?? this.ns4=(document.layers && !this.dom)?1:0;
          ?? this.mac=(this.ver.indexOf('Mac') > -1) ?1:0;
          ?? this.ope=(navigator.userAgent.indexOf('Opera')>-1);
          ?? this.ie=(this.ie6 || this.ie5 || this.ie4)
          ?? this.ns=(this.ns4 || this.ns5)
          ?? this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope)
          ?? this.nbw=(!this.bw)
          ?? return this;
          }

          計算內容寬和高

          <SCRIPT?language="javascript">
          function? test(obj)
          {
          ?? var? range? =? obj.createTextRange();
          ?? alert("內容區寬度: " + range.boundingWidth + "px\r\n內容區高度: " + range.boundingHeight + "px");
          }
          </SCRIPT>
          <BODY>
          <Textarea id="txt" height="150">sdf</textarea><INPUT? type="button"? value="計算內容寬度"? onClick="test(txt)">
          </BODY>

          無模式的提示框

          function modelessAlert(Msg)
          {window.showModelessDialog("javascript:alert(\""+escape(Msg)+"\");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
          }

          屏蔽按鍵

          <html>
          <head>
          ? <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          ? <noscript><meta http-equiv="refresh" content="0;url=about:noscript"></noscript>
          ? <title>屏蔽鼠標右鍵、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格鍵</title>
          </head>
          <body>
          <script language="Javascript"><!--
          ? //屏蔽鼠標右鍵、Ctrl+N、Shift+F10、F11、F5刷新、退格鍵
          ? //Author: meizz(梅花雨) 2002-6-18
          function document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠標右鍵
          function window.onhelp(){return false} //屏蔽F1幫助
          function document.onkeydown()
          {
          ? if ((window.event.altKey)&&
          ????? ((window.event.keyCode==37)||?? //屏蔽 Alt+ 方向鍵 ←
          ?????? (window.event.keyCode==39)))?? //屏蔽 Alt+ 方向鍵 →
          ? {
          ???? alert("不準你使用ALT+方向鍵前進或后退網頁!");
          ???? event.returnValue=false;
          ? }
          ???? /* 注:這還不是真正地屏蔽 Alt+ 方向鍵,
          ???? 因為 Alt+ 方向鍵彈出警告框時,按住 Alt 鍵不放,
          ???? 用鼠標點掉警告框,這種屏蔽方法就失效了。以后若
          ???? 有哪位高手有真正屏蔽 Alt 鍵的方法,請告知。*/
          ? if ((event.keyCode==8)? ||???????????????? //屏蔽退格刪除鍵
          ????? (event.keyCode==116)||???????????????? //屏蔽 F5 刷新鍵
          ????? (event.ctrlKey && event.keyCode==82)){ //Ctrl + R
          ???? event.keyCode=0;
          ???? event.returnValue=false;
          ???? }
          ? if (event.keyCode==122){event.keyCode=0;event.returnValue=false;}? //屏蔽F11
          ? if (event.ctrlKey && event.keyCode==78) event.returnValue=false;?? //屏蔽 Ctrl+n
          ? if (event.shiftKey && event.keyCode==121)event.returnValue=false;? //屏蔽 shift+F10
          ? if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
          ????? window.event.returnValue = false;???????????? //屏蔽 shift 加鼠標左鍵新開一網頁
          ? if ((window.event.altKey)&&(window.event.keyCode==115))???????????? //屏蔽Alt+F4
          ? {
          ????? window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
          ????? return false;
          ? }
          }
          </script>
          屏蔽鼠標右鍵、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格鍵
          </body>
          </html>

          屏蔽打印

          <style>
          @media print{
          * {display:none}
          }
          </style>

          移動的圖層/拖動

          1.<span style='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" ondrag="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>
          <script language="JavaScript" type="text/javascript">
          var orgMouseX;
          var orgMouseY;
          var orgObjX;
          var orgObjY;
          function doDrag()
          {
          var myObject=document.all.myDiv;
          var x=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>

          文檔狀態改變

          <iframe src="a.html" id="f" name="f" scrolling="no" frameborder=0 marginwidth=0 marginheight=0></iframe>
          <script>
          var doc=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=text id=oPersistInput>
          </BODY>
          </HTML>

          訪問剪貼板

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

          操作COOKIE

          function SetCookie(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[i].split("=");
          ? if (sName == aCrumb[0])
          ? return unescape(aCrumb[1]);
          ?}
          }
          function DelCookie(sName)
          {
          document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
          }

          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[i] = "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[i];
          ?return this.apply(obj, argu);
          };

          下載文件

          function DownURL(strRemoteURL,strLocalURL)
          {
          ?try
          ?{
          ? var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP");
          ? xmlHTTP.open("Get",strRemoteURL,false);
          ? xmlHTTP.send();
          ? var adodbStream=new ActiveXObject("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("下載完成.");
          }

          檢驗連接是否有效

          function getXML(URL)
          {
          ?var xmlhttp = new ActiveXObject("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

          <SCRIPT language="VBScript">
          Function URLEncoding(vstrIn)
          ??? strReturn = ""
          ??? For i = 1 To Len(vstrIn)
          ??????? ThisChr = Mid(vStrIn,i,1)
          ??????? If Abs(Asc(ThisChr)) < &HFF Then
          ??????????? 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=完成

          組件是否安裝

          isComponentInstalled("{6B053A4B-A7EC-4D3D-4567-B8FF8A1A5739}", "componentID"))

          檢查網頁是否存在

          function CheckURL(URL)
          {
          ? var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          ? xmlhttp.Open("GET",URL, false);
          ? try
          ? {
          ??? xmlhttp.Send();
          ??? var result = xmlhttp.status;
          ? }
          ? catch(e) {return(false); }
          ? if(result==200)
          ? {
          ??? return true;
          ? }
          ? xmlhttp = null;
          ? return false;
          }

          連接數據庫

          <script language="javascript">
          ? //用 JavaScript 寫服務器端連接數據庫的代碼示例
          ? var conn = new ActiveXObject("ADODB.Connection");
          ? conn.Open("Provider=SQLOLEDB.1; Data Source=localhost; User ID=sa; "
          ??? +"Password=; Initial Catalog=pubs");
          ? var rs = new ActiveXObject("ADODB.Recordset");
          ? var sql="select * from authors";
          ? rs.open(sql, conn);
          ?shtml = "<table width='100%' border=1>";
          ?shtml +="<tr bgcolor='#f4f4f4'><td>au_id</td><td>au_lname</td><td>au_fname</td><td>phone</td><td>address</td><td> city</td><td>state</td><td>zip</td></tr>";
          ? while(!rs.EOF)
          ? {
          ?shtml += "<tr><td>" + rs("au_id") + "</td><td>" + rs("au_lname") + "</td><td>" + rs("au_fname") + "</td><td>" + rs("phone") + "</td><td>" + rs("address") + "</td><td>" + rs("city") + "</td><td>" + rs("state") + "</td><td>" + rs("zip") + "</td></tr>";
          ?rs.moveNext;
          ? }
          ? shtml += "</table>";
          ? document.write(shtml);
          ? rs.close();
          ? rs = null;
          ? conn.close();
          ? conn = null;
          </script>

          使用數據島

          <html>
          <body>
          srno:<input type=text datasrc=#xmldate DataFLD=srno size="76"><BR>
          times:<input type=text datasrc=#xmldate DataFLD=times size="76"><BR>
          <input id="first" TYPE=button value="<< 第一條記錄" onclick="xmldate.recordset.moveFirst()">
          <input id="prev" TYPE=button value="<上一條記錄" onclick="xmldate.recordset.movePrevious()">
          <input id="next" TYPE=button value="下一條記錄>" onclick="xmldate.recordset.moveNext()">
          <input id="last" TYPE=button value="最后一條記錄>>" onclick="xmldate.recordset.moveLast()">
          <input id="Add" TYPE=button value="添加新記錄" onclick="xmldate.recordset.addNew()">
          <XML ID="xmldate">
          <infolist>
          <info ><srno>20041025-01</srno><times>null</times></info>
          <info ><srno>20041101-09</srno><times>2004年10月1日2點22分0秒</times></info>
          </infolist>
          </XML>
          </body>
          </html>

          獲得參數

          <body>
          <a href="javascript:location.href=location.href + '?a=1&b=2'">search</a>
          <script language="JavaScript">
          <!--
          var a = location.search.substr(1);
          if(a.length>0)
          {
          ?var re = /([^&]*?)\=([^&]*)/g
          ?var s = a.match(re);
          ?for(var i= 0;i<s.length;i++)
          ?{
          ? alert(s[i]);
          ? alert(s[i].split("=")[1]);
          ?}
          }
          //-->
          </script>
          </body>

          可編輯SELECT

          <input type=text name=re_name style="width:100px;height:21px;font-size:10pt;"><span style="width:18px;border:0px solid red;"><select name="r00" style="margin-left:-100px;width:118px; background-color:#FFEEEE;" onChange="document.all.re_name.value=this.value;">
          ??????????????? <option value="1">11111111<option>
          ??????????????? <option value="2">222222</option>
          ??????????????? <option value="3">333333</option>
          ????????????? </select>
          ????????????? </span>

          設置光標位置

          function getCaret(textbox){
          ?var control = document.activeElement;
          ?textbox.focus();
          ?var rang = document.selection.createRange();
          ?rang.setEndPoint("StartToStart",textbox.createTextRange())
          ?control.focus();
          ?return rang.text.length;
          }
          function setCaret(textbox,pos){
          ?try{
          ? var r =textbox.createTextRange();
          ?? r.moveStart('character',pos);
          ?? r.collapse(true);
          ?? r.select();
          ?}
          ?catch(e)
          ?{}
          }
          function selectLength(textbox,start,len){
          ?try
          ?{
          ? var r =textbox.createTextRange();
          ? r.moveEnd('character',len-(textbox.value.length-start));
          ? r.moveStart('character',start);
          ? r.select();
          ?}
          ?catch(e)
          ?{//alert(e.description)}
          }
          function insertAtCaret(textbox,text){
          ?textbox.focus();
          ?document.selection.createRange().text = text;
          }

          頁內查找

          function findInPage(str){
          ?var txt, i, found,n = 0;
          ?if (str == "")?{
          ? return false;
          ?}
          ?txt = document.body.createTextRange();
          ?for (i = 0; i <= n && (found = txt.findText(str)) != false; i++)?{
          ? txt.moveStart("character", 1);
          ? txt.moveEnd("textedit");
          ?}
          ?if (found)?{
          ? txt.moveStart("character", -1);
          ? txt.findText(str);
          ? txt.select();
          ? txt.scrollIntoView();
          ? n++;
          ?}
          ?else?{
          ? if (n > 0) {
          ?? n = 0;
          ?? findInPage(str);
          ? }
          ? else {
          ?? alert(str + "... 您要找的文字不存在。\n \n請試著輸入頁面中的關鍵字再次查找!");
          ? }
          ?}
          ?return false;
          }

          操作EXECL

          <script language="javascript">
          function jStartExcel() {
          ?var xls = new ActiveXObject ( "Excel.Application" );
          ?xls.visible = true;
          ?var newBook = xls.Workbooks.Add;
          ?newBook.Worksheets.Add;
          ?newBook.Worksheets(1).Activate;
          ?xls.ActiveWorkBook.ActiveSheet.PageSetup.Orientation = 2;
          ?xls.ActiveWorkBook.ActiveSheet.PageSetup.PaperSize = 5;
          ?newBook.Worksheets(1).Columns("A").columnwidth=50;
          ?newBook.Worksheets(1).Columns("A").WrapText = true;
          ?newBook.Worksheets(1).Columns("B").columnwidth=50;
          ?newBook.Worksheets(1).Columns("B").WrapText = true;
          ?newBook.Worksheets(1).Range("A1:B1000").NumberFormat = "0";
          ?newBook.Worksheets(1).Range("A1:B1000").HorizontalAlignment = -4131;
          ?newBook.Worksheets(1).Cells(1,1).Interior.ColorIndex="15";
          ?newBook.Worksheets(1).Cells(1,1).value="First Column, First Cell";
          ?newBook.Worksheets(1).Cells(2,1).value="First Column, Second Cell";
          ?newBook.Worksheets(1).Cells(1,2).value="Second Column, First Cell";
          ?newBook.Worksheets(1).Cells(2,2).value="Second Column, Second Cell";
          ?newBook.Worksheets(1).Name="My First WorkSheet";
          }
          </script>

          自定義提示條

          <a href="#" title="這是提示">tip</a>
          <script Language="JavaScript">
          //***********默認設置定義.*********************
          tPopWait=50;//停留tWait豪秒后顯示提示。
          tPopShow=5000;//顯示tShow豪秒后關閉提示
          showPopStep=20;
          popOpacity=99;
          //***************內部變量定義*****************
          sPop=null;
          curShow=null;
          tFadeOut=null;
          tFadeIn=null;
          tFadeWaiting=null;
          document.write("<style type='text/css'id='defaultPopStyle'>");
          document.write(".cPopText {? background-color: #F8F8F5;color:#000000; border: 1px #000000 solid;font-color: font-size: 12px; padding-right: 4px; padding-left: 4px; height: 20px; padding-top: 2px; padding-bottom: 2px; filter: Alpha(Opacity=0)}");
          document.write("</style>");
          document.write("<div id='dypopLayer' style='position:absolute;z-index:1000;' class='cPopText'></div>");

          function showPopupText(){
          var o=event.srcElement;
          MouseX=event.x;
          MouseY=event.y;
          if(o.alt!=null && o.alt!=""){o.dypop=o.alt;o.alt=""};
          ??????? if(o.title!=null && o.title!=""){o.dypop=o.title;o.title=""};
          if(o.dypop!=sPop) {
          sPop=o.dypop;
          clearTimeout(curShow);
          clearTimeout(tFadeOut);
          clearTimeout(tFadeIn);
          clearTimeout(tFadeWaiting);
          if(sPop==null || sPop=="") {
          dypopLayer.innerHTML="";
          dypopLayer.style.filter="Alpha()";
          dypopLayer.filters.Alpha.opacity=0;
          }
          else {
          if(o.dyclass!=null) popStyle=o.dyclass
          else popStyle="cPopText";
          curShow=setTimeout("showIt()",tPopWait);
          }
          }
          }
          function showIt(){
          dypopLayer.className=popStyle;
          dypopLayer.innerHTML=sPop;
          popWidth=dypopLayer.clientWidth;
          popHeight=dypopLayer.clientHeight;
          if(MouseX+12+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24
          else popLeftAdjust=0;
          if(MouseY+12+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24
          else popTopAdjust=0;
          dypopLayer.style.left=MouseX+12+document.body.scrollLeft+popLeftAdjust;
          dypopLayer.style.top=MouseY+12+document.body.scrollTop+popTopAdjust;
          dypopLayer.style.filter="Alpha(Opacity=0)";
          fadeOut();
          }
          function fadeOut(){
          if(dypopLayer.filters.Alpha.opacity<popOpacity) {
          dypopLayer.filters.Alpha.opacity+=showPopStep;
          tFadeOut=setTimeout("fadeOut()",1);
          }
          else {
          dypopLayer.filters.Alpha.opacity=popOpacity;
          tFadeWaiting=setTimeout("fadeIn()",tPopShow);
          }
          }
          function fadeIn(){
          if(dypopLayer.filters.Alpha.opacity>0) {
          dypopLayer.filters.Alpha.opacity-=1;
          tFadeIn=setTimeout("fadeIn()",1);
          }
          }
          document.onmouseover=showPopupText;
          </script>

          插入文字

          document.onclick =function(){
          var oSource = window.event.srcElement;
          if(oSource.tagName!="DIV")
          return false;
          var sel = document.selection;
          if (sel!=null) {
          var rng = sel.createRange();
          if (rng!=null)
          rng.pasteHTML("<font color=red>插入文字</font>");
          }
          }

          netscapte下操作xml

          doc = new ActiveXObject("Msxml2.DOMDocument");
          doc = new ActiveXObject("Microsoft.XMLDOM")
          doc = (new DOMParser()).parseFromString(sXML,'text/xml')

          判斷鍵值

          <html>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <head>
          <script language="javascript">
          var ie? =navigator.appName=="Microsoft Internet Explorer"?true:false;
          function keyDown(e)
          {
          ?if(!ie)
          ?{
          ? var nkey=e.which;
          ? var iekey='現在是ns瀏覽器';
          ? var realkey=String.fromCharCode(e.which);
          ?}
          ?if(ie)
          ?{
          ? var iekey=event.keyCode;
          ? var nkey='現在是ie瀏覽器';
          ? var realkey=String.fromCharCode(event.keyCode);
          ? if(event.keyCode==32){realkey='\' 空格\''}
          ? if(event.keyCode==13){realkey='\' 回車\''}
          ? if(event.keyCode==27){realkey='\' Esc\''}
          ? if(event.keyCode==16){realkey='\' Shift\''}
          ? if(event.keyCode==17){realkey='\' Ctrl\''}
          ? if(event.keyCode==18){realkey='\' Alt\''}
          ?}
          ?alert('ns瀏覽器中鍵值:'+nkey+'\n'+'ie瀏覽器中鍵值:'+iekey+'\n'+'實際鍵為'+realkey);
          }
          document.onkeydown = keyDown;
          </script>
          </head>
          <body>
          //Javascript Document.
          <hr>
          <center>
          <h3>請按任意一個鍵。。。。</h3>
          </center>
          </body>
          </html>

          禁止FSO

          1.注銷組件
          regsvr32 /u scrrun.dll
          2.修改PROGID
          HKEY_CLASSES_ROOT\Scripting.FileSystemObject
          Scripting.FileSystemObject
          3.對于使用object的用戶,修改HKEY_CLASSES_ROOT\Scripting.

          省略號

          <DIV STYLE="width: 120px; height: 50px; border: 1px solid blue; overflow: hidden; text-overflow:ellipsis">
          <NOBR>就是比如有一行文字,很長,表格內一行顯示不下.</NOBR>
          </DIV>

          檢測media play版本

          <IE:clientCaps ID="oClientCaps" style="{behavior:url(#default#clientcaps)}" />
          <SCRIPT>
          ??? var flash="";
          ??? WMPVersion= oClientCaps.getComponentVersion("{22D6F312-B0F6-11D0-94AB-0080C74C7E95}","ComponentID");
          ??? if (WMPVersion != "") {
          ??? flash = "";
          ??? var version = WMPVersion.split(",");
          ??? var i;
          ??? for (i = 0; i < version.length; i++) {
          ????? if (i != 0)
          ??? flash += ".";
          ????? flash += version[i];
          ??? }
          ???? document.write("您的Windows Media Player 版本是:"+flash+"<p>");
          ? }
          </SCRIPT>

          圖象按比例

          <script language="JavaScript">
          <!--
          //圖片按比例縮放
          var flag=false;
          function DrawImage(ImgD){
          ?var image=new Image();
          ?var iwidth = 80;? //定義允許圖片寬度
          ?var iheight = 80;? //定義允許圖片高度
          ?image.src=ImgD.src;
          ?if(image.width>0 && image.height>0){
          ?flag=true;
          ?if(image.width/image.height>= iwidth/iheight){
          ? if(image.width>iwidth){
          ? ImgD.width=iwidth;
          ? ImgD.height=(image.height*iwidth)/image.width;
          ? }else{
          ? ImgD.width=image.width;
          ? ImgD.height=image.height;
          ? }
          ? ImgD.alt=image.width+"×"+image.height;
          ? }
          ?else{
          ? if(image.height>iheight){
          ? ImgD.height=iheight;
          ? ImgD.width=(image.width*iheight)/image.height;
          ? }else{
          ? ImgD.width=image.width;
          ? ImgD.height=image.height;
          ? }
          ? ImgD.alt=image.width+"×"+image.height;
          ? }
          ?}
          }
          //-->
          </script>
          <img src=".." onload = "DrawImage(this)">

          細線SELECT

          <span style="border:1px solid #000000; position:absolute; overflow:hidden;" >
          <select style="margin:-2px;">
          <option>1111</option>
          <option>11111111111111</option>
          <option>111111111</option>
          </select></span>

          Import

          function Import() {
          ?for( var i=0; i<arguments.length; i++ ) {
          ? var file = arguments[i];
          ? if ( file.match(/\.js$/i))
          ?? document.write('<script type=\"text/javascript\" src=\"' + file + '\"></sc' + 'ript>');
          ? else
          ?? document.write('<style type=\"text/css\">@import \"' + file + '\" ;</style>');
          ?}
          };

          js枚舉

          function getComputerName()
          {
          ?var objWMIService = GetObject("Winmgmts:root\cimv2");
          ?for(e = new Enumerator(objWMIService) ; !e.atEnd() ; e.moveNext())
          ?{
          ??? var getComputer = e.item();
          ??? return getComputer.Name;
          ?}
          }

          條件編譯

          <script language=javascript>
          /*@cc_on @*/
          /*@if (@_win32 && @_jscript_version>5)
          function window.confirm(str)
          {
          ??? execScript("n = msgbox('"+ str +"', 257)", "vbscript");
          ??? return(n == 1);
          }
          @end @*/
          </script>

          取得innerText

          <SCRIPT LANGUAGE="JavaScript">
          <!--
          ?var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
          ?var currNode;
          ?xmlDoc.async = false;
          ?xmlDoc.async = false;
          ?xmlDoc.loadXML("<TABLENAME>?? 你好你阿三 大法???? 司法等四??? </TABLENAME>");
          ?currNode = xmlDoc.documentElement;
          ? var s = currNode.xml;
          ? var r = /\<([^\>\s]*?)[^\>]*?\>([^\<]*?)\<\/\1\>/
          ? var b = s.replace(r,"$2");
          ? alert(b);
          //-->
          </SCRIPT>

          mergeAttributes 復制所有讀/寫標簽屬性到指定元素

          <SCRIPT>
          function fnMerge(){
          oSource.children[1].mergeAttributes(oSource.children[0]);
          }
          </SCRIPT>
          <SPAN ID=oSource>
          <DIV ID="oDiv" ATTRIBUTE1="true" ATTRIBUTE2="true" onclick="alert('click');" onmouseover="this.style.color='#0000FF';" onmouseout="this.style.color='#000000';">
          This is a sample <B>DIV</B> element.
          </DIV>
          <DIV ID="oDiv2">
          This is another sample <B>DIV</B> element.
          </DIV>
          </SPAN>
          <INPUT TYPE="button" VALUE="Merge Attributes" onclick="fnMerge()">

          文章挺全面。不過實際上由于版本的差異和兼容、安全性對腳本的苛刻要求,很多代碼已經失去應有的效果。但依然具有其研究很收藏的價值!!!

          posted on 2007-09-14 14:08 李云澤 閱讀(2567) 評論(0)  編輯  收藏 所屬分類: javascript

          主站蜘蛛池模板: 兖州市| 福建省| 靖边县| 苍山县| 新邵县| 乌海市| 铅山县| 兴海县| 揭东县| 景东| 盐城市| 澄迈县| 保康县| 罗甸县| 保定市| 安吉县| 沭阳县| 集安市| 蓬莱市| 新沂市| 诸暨市| 梅河口市| 公主岭市| 明溪县| 诏安县| 大名县| 页游| 大关县| 宁阳县| 灵石县| 建水县| 临湘市| 称多县| 徐汇区| 伊通| 铜陵市| 凯里市| 峨山| 佳木斯市| 城固县| 德化县|