javascript
javascript技巧参考
原文:http://www.cnblogs.com/xh831213/archive/2006/03/17/352224.html ?
- 事件源對象
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:aaa@bbb.com?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 sdfs " 獲得時間所代表的微秒
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.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?οnkeypress="return?event.keyCode>=48&&event.keyCode<=57||(this.value.indexOf('.')<0?event.keyCode==46:false)"?οnpaste="return?!clipboardData.getData('text').match(/\D/)"?οndragenter="return?false">?
//特殊用途
<input?type=button?value=導入收藏夾?οnclick="window.external.ImportExportFavorites(true,'http://localhost');"><input?type=button?value=導出收藏夾?οnclick="window.external.ImportExportFavorites(false,'http://localhost');">
<input?type=button?value=整理收藏夾?οnclick="window.external.ShowBrowserUI('OrganizeFavorites',?null)">
<input?type=button?value=語言設置???οnclick="window.external.ShowBrowserUI('LanguageDialog',?null)">
<input?type=button?value=加入收藏夾?οnclick="window.external.AddFavorite('http://www.google.com/',?'google')">
<input?type=button?value=加入到頻道?οnclick="window.external.addChannel('http://www.google.com/')">
<input?type=button?value=加入到頻道?οnclick="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-?./?%&=]*)?
以下是例子:
利用正則表達式限制網頁表單里的文本框輸入內容:
用正則表達式限制只能輸入中文:ο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>
?
//無提示關閉
{
?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)
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.
//最小化,最大化,關閉
<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=最小化?οnclick=min.Click()>?
<input?type=button?value=最大化?οnclick=max.Click()>?
<input?type=button?value=關閉?οnclick=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"?οnfοcus="cc()">
//頁面進入和退出的特效
推出頁面<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">page2</p>??
?
//設置打印
??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>
//去掉打印時的頁眉頁腳
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()>
//瀏覽器驗證
{?
???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>
//移動的圖層,拖動
<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"?οndrag="doDrag();"?οnmοuseοver="this.style.cursor='hand'"?style="position:absolute;left=100;top=100;"?οnmοusedοwn="doMouseDown();">
<a?href="#"?οnclick="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>
?
//文檔狀態改變
<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
{
?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
?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);
};???????
//下載文件
{
?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("下載完成.");
}
//檢驗連接是否有效
{
?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"))
//檢查網頁是否存在
{
??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;
}
//連接數據庫
??//用?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>
//使用數據島
<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="<< 第一條記錄"?οnclick="xmldate.recordset.moveFirst()">
<input?id="prev"?TYPE=button?value="<上一條記錄"?οnclick="xmldate.recordset.movePrevious()">??
<input?id="next"?TYPE=button?value="下一條記錄>"?οnclick="xmldate.recordset.moveNext()">??
<input?id="last"?TYPE=button?value="最后一條記錄>>"?οnclick="xmldate.recordset.moveLast()">???
<input?id="Add"?TYPE=button?value="添加新記錄"?οnclick="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> posted on 2006-11-18 15:31 dadamoney 閱讀(...) 評論(...) 編輯 收藏
轉載于:https://www.cnblogs.com/dadamoney/archive/2006/11/18/564561.html
總結
以上是生活随笔為你收集整理的javascript技巧参考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SEO|搜索引擎优化(如何让你的网站排名
- 下一篇: 程序员都该知道这5个定律,有朋友使用后,