常用的javascript小技巧[作者oror][收藏]

本文汇总了多种实用的JavaScript技巧,包括事件处理、DOM操作、定时器使用、正则表达式等,帮助开发者提高编程效率。
导读:
  常用的一些javascript小技巧
  [作者:oror,from蓝色理想]
  事件源对象
  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[索引]
  
  对象绑定事件
  插件数目
  
  navigator.plugins
  取变量类型
  
  typeof($js_libpath) == "undefined"
  下拉框
  
  下拉框.options[索引]
  下拉框.options.length
  查找对象
  document.getElementsByName("r1");
  document.getElementById(id);
  定时
  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"
  
  自动刷新
  
  
  简单邮件
  
  
  快速转到位置
  obj.scrollIntoView(true)
  
  锚
  
  

  
anchors
  网页传递参数
  
  location.search();
  可编辑
  
  obj.contenteditable=true
  执行菜单命令
  
  obj.execCommand
  双字节字符
  /[^/x00-/xff]/
  汉字
  /[/u4e00-/u9fa5]/
  让英文字符串超出表格宽度自动换行
  
  word-wrap: break-word; word-break: break-all;
  透明背景
  
  
  获得style内容
  
  obj.style.cssText
  HTML标签
  
  document.documentElement.innerHTML
  第一个style标签
  
  document.styleSheets[0]
  style标签里的第一个样式
  
  document.styleSheets[0].rules[0]
  防止点击空链接时,页面往往重置到页首端。
  
   word
  上一网页源
  
  asp:
  request.servervariables("HTTP_REFERER")
  javascript:
  document.referrer
  释放内存
  
  CollectGarbage();
  禁止右键
  document.oncontextmenu = function() { return false;}
  禁止保存
  
  禁止选取
  onselect="document.selection.empty)" oncopy="document.selection.empty)" onbeforecopy=
"return false"onmouseup="document.selection.empty()>  onselect="document.selection.empty)" oncopy="document.selection.empty)" onbeforecopy=
  "return false"onmouseup="document.selection.empty()>
  禁止粘贴
  
  
  地址栏图标
  
  favicon.ico 名字最好不变16*16的16色,放虚拟目录根目录下
  收藏栏图标
  
  查看源码
  关闭输入法
  
  
  自动全选
  
  
  ENTER键可以让光标移到下一个输入框
  
  
  文本框的默认值
  
  
  title换行
  
  obj.title = "123 sdfs "
  获得时间所代表的微秒
  var n1 = new Date("2004-10-10".replace(/-/g, "//")).getTime()
  窗口是否关闭
  win.closed
  checkbox扁平
  
  
  获取选中内容
  document.selection.createRange().duplicate().text
  自动完成功能
  
   打开该功能
   关闭该功能
  窗口最大化
  
  无关闭按钮IE
  
  window.open("aa.htm", "meizz", "fullscreen=7");
  统一编码/解码
  
  alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe")))
  encodeURIComponent对":"、"/"、";" 和 "?"也编码
  表格行指示
  //各种尺寸
  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标记的正则表达式:/<(.*)>.* |<(.*) //>/
  匹配首尾空格的正则表达式:(^/s*)|(/s*$)(像vbscript那样的trim函数)
  匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
  匹配网址URL的正则表达式:http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?
  以下是例子:
  利用正则表达式限制网页表单里的文本框输入内容:
  //消除图像工具栏
  [/html]
  
  or
  
  
  
  [/html]
  //取得控件得绝对位置(1)
  
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
  //获得控件的绝对位置(2)
  oRect = obj.getBoundingClientRect();
  oRect.left
  oRect.
  //打印分页
  

page1


  

page2


  //设置打印
  
< object id="factory" style="display:none" viewastext


< input type=button value=页面设置 onclick="factory.printing.PageSetup()">
< input type=button value=打印预览 onclick="factory.printing.Preview()">
< br />< 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
}

< 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()">

< a href="http://www.meadroid.com/scriptx/docs/printdoc.htm?static" target=_blank>具体使用手册,更多信息,点这里
[Ctrl+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) 关闭窗体无提示
  
  
  

  
  

  
  
  
  


  


  


  //去掉打印时的页眉页脚
  
< 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){}
}

< input type="button" value="清空页码" onclick=PageSetup_Null()>
< input type="button" value="恢复页码" onclick=PageSetup_Default()>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
  //无模式的提示框
  function modelessAlert(Msg)
  {
  window.showModelessDialog("javascript:alert(/""+escape(Msg)+"/");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
  }
  //下载文件
  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);
  }
  }
  }
  
  //检查网页是否存在
  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;
  }
  //禁止FSO
  1.注销组件
  regsvr32 /u scrrun.dll
  2.修改PROGID
  HKEY_CLASSES_ROOT/Scripting.FileSystemObject
  Scripting.FileSystemObject
  3.对于使用object的用户,修改HKEY_CLASSES_ROOT/Scripting.

本文转自
http://www.cnblogs.com/tintown/archive/2006/01/25/323157.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值