javaScript 常用技巧(一)

 
  • 事件源對象
    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.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.οnmοusedοwn=scrollwindow;
  • 元素
    document.窗體.elements[索引]
  • 對象綁定事件
    document.all.xxx.detachEvent('onclick',a);
  • 插件數目
    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"
  • 自動刷新
    <meta HTTP-EQUIV="refresh" CONTENT="8;URL=http://c98.yeah.net">
  • 簡單郵件
    <a   href="
    mailto:[email protected]?subject=ccc&body=xxxyyy">  
  • 快速轉到位置
    obj.scrollIntoView(true)

  • <a name="first">
    <a href="#first">anchors</a>
  • 網頁傳遞參數
    location.search();
  • 可編輯
    obj.contenteditable=true
  • 執行菜單命令
    obj.execCommand
  • 雙字節字符
    /[^/x00-/xff]/
    漢字
    /[/u4e00-/u9fa5]/
  • 讓英文字符串超出表格寬度自動換行
    word-wrap: break-word; word-break: break-all;
  • 透明背景
    <IFRAME src="1.htm" width=300 height=180 allowtransparency></iframe>
  • 獲得style內容
    obj.style.cssText
  • HTML標籤
    document.documentElement.innerHTML
  • 第一個style標籤
    document.styleSheets[0]
  • style標籤裏的第一個樣式
    document.styleSheets[0].rules[0]
  • 防止點擊空鏈接時,頁面往往重置到頁首端。
    <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 οncοntextmenu="return false" οndragstart="return false" onselectstart ="return false" οnselect="document.selection.empty()" οncοpy="document.selection.empty()" onbeforecopy="return false"οnmοuseup="document.selection.empty()>
  • 禁止粘貼
    <input type=text οnpaste="return false">
  • 地址欄圖標
    <link rel="Shortcut Icon" href="favicon.ico">
    favicon.ico 名字最好不變16*16的16色,放虛擬目錄根目錄下
  • 收藏欄圖標
    <link rel="Bookmark" href="favicon.ico">
  • 查看源碼
    <input type=button value=查看網頁源代碼 οnclick="window.location = 'view-source:'+ 'http://www.csdn.net/'">
  • 關閉輸入法
    <input style="ime-mode:disabled">
  • 自動全選
    <input type=text name=text1 value="123" οnfοcus="this.select()">
  • ENTER鍵可以讓光標移到下一個輸入框
    <input οnkeydοwn="if(event.keyCode==13)event.keyCode=9">
  • 文本框的默認值
    <input type=text value="123" οnfοcus="alert(this.defaultValue)">
  • title換行
    obj.title = "123&#13sdfs&#32"
  • 獲得時間所代表的微秒
    var n1 = new Date("2004-10-10".replace(/-/g, "//")).getTime()
  • 窗口是否關閉
    win.closed
  • checkbox扁平
    <input type=checkbox style="position: absolute; clip:rect(5px 15px 15px 5px)"><br>
  • 獲取選中內容
    document.selection.createRange().duplicate().text
  • 自動完成功能
    <input   type=text   autocomplete=on>打開該功能  
    <input   type=text   autocomplete=off>關閉該功能    
  • 窗口最大化
    <body οnlοad="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("http://你好.com?as= hehe")))
    encodeURIComponent對":"、"/"、";" 和 "?"也編碼
  • 表格行指示
    <tr οnmοuseοver="this.bgColor='#f0f0f0'" οnmοuseοut="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;   

//過濾數字

//特殊用途

//不緩存


//正則匹配

匹配中文字符的正則表達式: [/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- ./?%&=]*)?
以下是例子:
利用正則表達式限制網頁表單裏的文本框輸入內容:
用正則表達式限制只能輸入中文:οnkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))"
1.用正則表達式限制只能輸入全角字符: οnkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))"
2.用正則表達式限制只能輸入數字:οnkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"
3.用正則表達式限制只能輸入數字和英文:οnkeyup="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()
    }
}

//取得控件得絕對位置(1)

<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>

//獲得控件的絕對位置(2)

oRect = obj.getBoundingClientRect();
oRect.left
oRect.

//最小化,最大化,關閉

//光標停在文字最後

<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" οnfοcus="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  

//網頁是否被檢索


//打印分頁


//設置打印

<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=頁面設置 οnclick="factory.printing.PageSetup()">
<input type=button value=打印預覽 οnclick="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="打印本頁" οnclick="factory.printing.Print(false)">
<input type=button value="頁面設置" οnclick="factory.printing.PageSetup()">
<input type=button value="打印預覽" οnclick="factory.printing.Preview()"><br>
<a href="http://www.meadroid.com/scriptx/docs/printdoc.htm?static"   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=打印 οnclick=document.all.WebBrowser.ExecWB(6,1)>  
<input type=button value=直接打印 οnclick=document.all.WebBrowser.ExecWB(6,6)>  
<input type=button value=頁面設置 οnclick=document.all.WebBrowser.ExecWB(8,1)>  
</p>  
<p> <input type=button value=打印預覽 οnclick=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="清空頁碼" οnclick=PageSetup_Null()>
<input type="button" value="恢復頁碼" οnclick=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;
}
發佈了5 篇原創文章 · 獲贊 5 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章