Javascript 技巧大全

来源:互联网  作者:未知
摘要:vt 事件事件源对象vt.rlement.tagNameevent.srcElement.type捕获释放event.srcElement.setCapture();event.srcElement.releaseCapture();事件按……

去掉打印时的页眉页脚

<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'" onmousedown="doMouseDown();">
<a href="http://www.liuchao8.cn/admin.php#" 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("下载完成.");
}

【相关文章】好搜一下
Firefox中的XML DOM探讨

Firefox中的XML DOM探讨

现在我们来看看Firefox中的XMLDOM实现,Firefox的开发人员采用更…