javascript使用技巧 2008-03-23 14:41

字号:    

         8月6日
javascript小技巧&&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.onmousedown=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 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)">
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 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("http://你好.com?as= hehe")))
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://localhost');">
<input type=button value=导出收藏夹 onclick="window.external.ImportExportFavorites(false,'http://localhost');">
<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,''))"

 


7月27日
鼠标拖动层的JS方法 (稍微自己改进)
<script>
var x,y,z,down=false,obj   
function init(){
obj=event.srcElement     //事件触发对象
obj.setCapture()            //设置属于当前对象的鼠标捕捉
z=obj.style.zIndex          //获取对象的z轴坐标值
//设置对象的z轴坐标值为100,确保当前层显示在最前面
obj.style.zIndex=100
x=event.offsetX   //获取鼠标指针位置相对于触发事件的对象的X坐标
y=event.offsetY   //获取鼠标指针位置相对于触发事件的对象的Y坐标
down=true         //布尔值,判断鼠标是否已按下,true为按下,false为未按下
}


再js中得到URl中的参数
function   getQuery(name)  
  {  
          var   reg   =   new   RegExp("(^|&)"+   name   +"=([^&]*)(&|$)");  
          var   r   =   window.location.search.substr(1).match(reg);  
          if   (r!=null)   return   unescape(r[2]);   return   null;  
  }  
  alert(getQuery("tt"));

  http://localhost/Drom_Manage/Base_data/Drom_Base/Room_Type.aspx?ord=s  

function   getQuery(name)  
  {  
          var   reg   =   new   RegExp("(^|&)"+   name   +"=([^&]*)(&|$)");  
          var   r   =   window.location.search.substr(1).match(reg);  
          if   (r!=null)   return   unescape(r[2]);   return   null;  
  }  
  alert(getQuery("ord"));  
   
   
  2.  
  String.prototype.getQuery   =   function(name)  
  {  
          var   reg   =   new   RegExp("(^|&)"+   name   +"=([^&]*)(&|$)");  
          var   r   =   this.substr(this.indexOf("\?")+1).match(reg);  
          if   (r!=null)   return   unescape(r[2]);   return   null;  
  }  
  var   str   =   "http://localhost/Drom_Manage/Base_data/Drom_Base/Room_Type.aspx?ord=s";  
  alert(str.getQuery("ord"));


  用IE重起计算机或者关机 
<script language="JavaScript">
var Application=new ActiveXObject('Shell.Application.1');
</script>
<button onclick=Application.ShutdownWindows();>关机</button><br>
<button onclick=Application.Suspend();>挂起</button>

 

将table保存为.xls格式

 <HTML>  
  <HEAD>  
  <SCRIPT   LANGUAGE="JavaScript">  
  <!--  
  function   CLICK(){  
  web.document.execCommand("SaveAs",false,"c:\\file.xls");  
  }  
  //-->  
  </SCRIPT>  
  </HEAD>  
  <BODY>  
  1  
  2  
  3  
  4  
  5  
  6  
  AAAAAA  
  <IFRAME   id=web   src="table.html">  
  <TABLE   ID="TAB">  
  <TR>  
  <TD>123456789<TD>  
  <TD>2<TD>  
  </TR>  
  <TR>  
  <TD>1123456789<TD>  
  <TD>22<TD>  
  </TR>  
  </TABLE>  
  </IFRAME>  
  <INPUT   TYPE="BUTTON"   NAME="TEST"   VALUE="TEST"   ONCLICK="JAVASCRIPT:CLICK();">  
  </BODY>  
  </HTML>  


再html中使用js定义的变量

<script   language="javascript">  
          var   strNum=30;  
  </script>  
  <body>  
          <div   id="oDiv"   style="background:red;width:expression(window.strNum);">ddd</div>  
  </body>  
   
<script   language="javascript">  
          var   strNum=30;  
  </script>  
  <body>  
          <div   style="width:expression(strNum.toString()+'px')"   />  
  </body>

  js修改注册表

  var   WshShell   =   WScript.CreateObject("WScript.Shell");  
   
  WshShell.RegWrite   ("HKCU\\Software\\ACME\\FortuneTeller\\",   1,   "REG_BINARY");  
  WshShell.RegWrite   ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader",   "Goocher!",   "REG_SZ");  
   
  var   bKey   =         WshShell.RegRead   ("HKCU\\Software\\ACME\\FortuneTeller\\");  
  WScript.Echo   (WshShell.RegRead   ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader"));  
   
  WshShell.RegDelete   ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader");  
  WshShell.RegDelete   ("HKCU\\Software\\ACME\\FortuneTeller\\");  
  WshShell.RegDelete   ("HKCU\\Software\\ACME\\");  
   
   
  var   WshShell   =   WScript.CreateObject   ("WScript.Shell");  
   
  WshShell.RegWrite   ("HKCU\\Software\\ACME\\FortuneTeller\\",   1,   "REG_BINARY");  
  WshShell.RegWrite   ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader",   "Goocher!",   "REG_SZ");  
   
  var   bKey   =         WshShell.RegRead   ("HKCU\\Software\\ACME\\FortuneTeller\\");  
  WScript.Echo   (WshShell.RegRead   ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader"));  
   
  WshShell.RegDelete   ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader");  
  WshShell.RegDelete   ("HKCU\\Software\\ACME\\FortuneTeller\\");  
  WshShell.RegDelete   ("HKCU\\Software\\ACME\\");  
   
js读取xml文件
<html>  
  <head>  
  </head>  
  <body>  
  <script   language="JavaScript">  
  var   orderDoc   =   new   ActiveXObject("Microsoft.XMLDOM");  
  orderDoc.load("a.xml");  
  function   getNodeG(doc,   xpath)   {  
  var   retval   =   "";  
  var   value   =   doc.selectSingleNode(xpath);  
  if   (value)  
        retval   =   value.text;  
  return   retval;  
  }  
  function   displayXML(){  
  var   tt   =   getNodeG(orderDoc,   "/TABLEINF/TABLENAME");  
  alert(tt);  
  }  
  </script>  
  <input   type="button"   value="显示XML信息"   onclick="displayXML()">  
  </body>  
  </html>  
  //-------xml-------//  
  <?xml   version="1.0"   encoding="GBK"?>  
  <TABLEINF>  
          <TABLENAME>             你好你阿三         大法           司法等四                             </TABLENAME>  
  </TABLEINF>  

检查是否安装了java虚拟机

<SCRIPT   LANGUAGE="JScript">  
  if   (window.clientInformation.javaEnabled()   ==   true   )  
  //   Java   已启用,可运行小程序。  
  </SCRIPT>  
再子窗口刷新父窗口
window.opener.location.href=window.opener.location.href;  
  window.opener.location.reload();  
  setTimeout("window.close()",10);    

  通过javascript语言将网页中的表格数据导出到Excel的代码  
   
  function   AutomateExcel()    
  {    
  //   Start   Excel   and   get   Application   object.    
  var   oXL   =   new   ActiveXObject("Excel.Application");    
  //   Get   a   new   workbook.    
  var   oWB   =   oXL.Workbooks.Add();    
  var   oSheet   =   oWB.ActiveSheet;    
  var   table   =   document.all.toExcel;    
  var   hang   =   table.rows.length;    
   
  var   lie   =   table.rows(0).cells.length;    
   
  //   Add   table   headers   going   cell   by   cell.    
  for   (i=0;i<hang;i++)    
  {    
  for   (j=0;j<lie;j++)    
  {    
  oSheet.Cells(i+1,j+1).value   =   table.rows(i).cells(j).innerText;    
  }    
   
  }    
  oXL.Visible   =   true;    
  oXL.UserControl   =   true;    
  }    
   
  js使用Excel还可以用word.Application来调用word,
  <script>  
  var   exApp   =   new   ActiveXObject("Excel.Application");  
  var   bk=exApp.Workbooks.Open("G:\Book1.xls");  
  alert(bk.Worksheets(1).Cells(1).value);  
  </script>


  ActiveXObject("Scripting.FileSystemObject"); 操作文件


  ajax用法
  var xmlhttp=null;
var pp=document.getElementById("su");//su是一个文本框存放的是要打开的URL
function ajax(id,uid){
 if(window.XMLHttpRequest){
  xmlhttp=new XMLHttpRequest();
 }else if(window.ActiveXObject){
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
 if(xmlhttp){
  var url="<%=path%>/usrmgr/loginValidate2.jsp?id="+id+"&uid="+uid;
  xmlhttp.open("GET",url,true);
  xmlhttp.onreadystatechange = retufun;
  xmlhttp.send(null);
 }

}
function retufun(){

 if (xmlhttp.readyState == 4) {
       if (xmlhttp.status == 200) {
         if(xmlhttp.responseText == 1){
          window.open(pp.value);
         }else{
          alert("你的权限不够!!!");
         }
       }
      }
 
}

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
网易公司版权所有 ©1997-2009