??xml version="1.0" encoding="utf-8" standalone="yes"?>
1?span style="FONT: 7pt 'Times New Roman'">
Factory
Factory 是我们最常用的模式之一。它主要为我们提供一个获取类实例的一个接口,把声明类的过E封装在?/span> Factory 中。D一?/span> Javascript 最常见的例子:
if (typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if (typeof window.ActiveXObject != "undefined") {
return new ActiveXObject("MSXML2.XMLHttp");
}
q个代码主要是获得一?span lang="EN-US">XMLHttp的实例,在代码中Q很多时候都会用到。如果每ơ都写一个,会变得很ȝQ采?span lang="EN-US">Factory模式的方法。代码如?span lang="EN-US">:
function XMLHttpFactory() {
}
XMLHttpFactory.createXMLHttp = function () {
if (typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if (typeof window.ActiveXObject != "undefined") {
return new ActiveXObject("MSXML2.XMLHttp");
}
}
在用时可以直接调用而免M很多冗余的代码,而且代码也非常直观?/span>
var oXMLHttp = XMLHttpFactory.createXMLHttp();
2
?/span>
Singleton
Singleton( 单?/span> ) 的作用是保持在界面中保持只有一个实例供调用。这样可以保持系l对某一个实例用进行控制?/span>
function MyClass() {
}
MyClass.instance = null; //define the static property
MyClass.getInstance = function () {
if (this.instance == null) {
//
建立自己的实例,q保?/span>
this.instance = new MyClass();
}
return this.instance;
}
在希望获得改实例的引用时Q执行以下代码:
var oMyObject = MyClass.getInstance();
Q未完待l?/span> ?.^_^ Q?/span>
<table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复?/p>
3. onpaste="return false" 不准_脓
4. oncopy="return false;" oncut="return false;" 防止复制
5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图?/p>
6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显C出你的图标
7. <input style="ime-mode:disabled"> 关闭输入?/p>
8. 永远都会带着框架
<script language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网?br />// --></script>
9. 防止被hframe
<SCRIPT LANGUAGE=JAVASCRIPT><!--
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>
10. |页不能被另存?/p>
<noscript><iframe src=*.html></iframe></noscript>
11. 查看|页源代?/p>
<input type=button value=查看|页源代?
onclick="window.location = "view-source:"+ "http://www.pconline.com.cn"">
12.删除时确?/p>
<a href="javascript:if(confirm("实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除</a>
13. 取得控g的绝对位|?/p>
//Javascript
<script language="Javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"/nleft="+l);
}
</script>
//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控g的位|?
end function
--></script>
14. 光标是停在文本框文字的最?/p>
<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" onfocus="cc()">
15. 判断上一늚来源
javascript:
document.referrer
16. 最化、最大化、关闭窗?/p>
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" VALUE="Close"></OBJECT>
<input type=button value=最化 onclick=hh1.Click()>
<input type=button value=最大化 onclick=hh2.Click()>
<input type=button value=关闭 onclick=hh3.Click()>
本例适用于IE
17.屏蔽功能键Shift,Alt,Ctrl
<script>
function look(){
if(event.shiftKey)
alert("止按Shift?"); //可以换成ALT CTRL
}
document.onkeydown=look;
</script>
18. |页不会被缓?/p>
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或?lt;META HTTP-EQUIV="expires" CONTENT="0">
19.怎样让表单没有凹凸感Q?/p>
<input type=text style="border:1 solid #000000">
?br /><input type=text style="border-left:none; border-right:none; border-top:none; border-bottom:
1 solid #000000"></textarea>
20.<div><span>&<layer>的区别?
<div>(division)用来定义大段的页面元素,会生{?
<span>用来定义同一行内的元素,?lt;div>的唯一区别是不产生转行
<layer>是ns的标讎ͼie不支持,相当?lt;div>
21.让弹出窗口L在最上面:
<body onblur="this.focus();">
22.不要滚动?
让竖条没?
<body style="overflow:scroll;overflow-y:hidden">
</body>
让横条没?
<body style="overflow:scroll;overflow-x:hidden">
</body>
两个都去掉?更简单了
<body scroll="no">
</body>
23.怎样L囄链接点击后,囄周围的虚U?
<a href="#" onFocus="this.blur()"><img src="logo.jpg" border=0></a>
24.电子邮g处理提交表单
<form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain">
<input type=submit>
</form>
25.在打开的子H口h父窗口的代码里如何写Q?/p>
window.opener.location.reload()
26.如何讑֮打开面的大?/p>
<body onload="top.resizeTo(300,200);">
打开面的位|?lt;body onload="top.moveBy(300,200);">
27.在页面中如何加入不是满铺的背景图?拉动面时背景图不动
<STYLE>
body
{background-image:url(logo.gif); background-repeat:no-repeat;
background-position:center;background-attachment: fixed}
</STYLE>
28. 查一D字W串是否全由数字l成
<script language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>
29. 获得一个窗口的大小
document.body.clientWidth; document.body.clientHeight
30. 怎么判断是否是字W?/p>
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");
31.TEXTAREA自适应文字行数的多?/p>
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>
32. 日期减去天数{于W二个日?/p>
<script language=Javascript>
function cc(dd,dadd)
{
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "q? + (a.getMonth() + 1) + "? + a.getDate() + "?)
}
cc("12/23/2002",2)
</script>
33. 选择了哪一个Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" onclick="checkme()">
</BODY></HTML>
34.脚本怸出错
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide
function killErrors() {
return true;
}
window.onerror = killErrors;
// -->
</SCRIPT>
35.ENTER键可以让光标Ud下一个输入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">
36. 某个网站的链接速度Q?/p>
把如下代码加?lt;body>区域?
<script language=Javascript>
tim=1
setInterval("tim++",100)
b=1
var autourl=new Array()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"
function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
document.write("<input type=text name=txt"+i+" size=10 value=试中…?gt; =?lt;input type=text
name=url"+i+" size=40> =?lt;input type=button value=GO
onclick=window.open(this.form.url"+i+".value)><br>")
document.write("<input type=submit value=h></form>")
}
butt()
function auto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="链接时"}
else
{document.forms[0]["txt"+b].value="旉"+tim/10+"U?}
b++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1
onerror=auto("http://"+autourl+"")>")}
run()</script>
37. 各种样式的光?/p>
auto Q标准光?br />default Q标准箭?br />hand Q手形光?br />wait Q等待光?br />text QI形光?br />vertical-text Q水qI形光?br />no-drop Q不可拖动光?br />not-allowed Q无效光?br />help Q?帮助光标
all-scroll Q三角方向标
move Q移动标
crosshair Q十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize
38.面q入和退出的Ҏ
q入面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
推出面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)">
q个是页面被载入和调出时的一些特效。duration表示Ҏ的持l时_以秒为单位。transition表示使用哪种ҎQ取gؓ1-23:
0 矩Ş~小
1 矩Ş扩大
2 圆Ş~小
3 圆Ş扩大
4 下到上刷?
5 上到下刷?br /> 6 左到叛_?
7 叛_左刷?
8 竖百叶窗
9 横百叶窗
10 错位横百叶窗
11 错位竖百叶窗
12 Ҏ?
13 左右C间刷?
14 中间到左叛_?br /> 15 中间C?br /> 16 上下C?
17 右下到左?br /> 18 右上到左?
19 左上到右?
20 左下到右?br /> 21 横条
22 竖条
23 以上22U随机选择一U?/p>
39.在规定时间内跌{
<META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com">
40.|页是否被检?/p>
<meta name="ROBOTS" content="属性?>
其中属性值有以下一?
属性gؓ"all": 文g被索,且页上链接可被查询;
属性gؓ"none": 文g不被索,而且不查询页上的链接Q?br /> 属性gؓ"index": 文g被索;
属性gؓ"follow": 查询上的链接;
属性gؓ"noindex": 文g不检索,但可被查询链接;
属性gؓ"nofollow": 文g不被索,但可查询上的链接?/p>
41.打开没有最大化、最化和关闭按钮的H口
上面q段代码大家应该很熟悉了Q跟一般打开H口的代码只有两个地方不同: fullscreen 属性的值在q里被设|成3了,q多了一个edge:Raised参数Q?strong>注意edge参数的格式,q个参数跟其他参数的格式不一P
42.鼠标事g
event.buttonQ事件发生时表示鼠标的动?如果?则是鼠标左键 2为鼠标右?不过现在好像MS都已l有8个g N以后鼠标的发展方向是8个键Q?br />
parentNodeQ父节点
event.ClientXQ事件发生时的鼠标x?br />
event.ClientYQ事件发生时的鼠标Y?br />
setCapture()ҎQ徏立对象和鼠标之间的通讯 也就是说鼠标作用在此对象上时才跟t鼠?br />
releaseCapture()ҎQ切断对象和鼠标之间的通讯
//加蝲xml文g
doc.load("xxx.xml");
//加蝲xml字符?br />doc.loadXML("<xml>");
//创徏文g?br />var p = doc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");
//d节点
doc.appendChild(p);
//得到Ҏ?br />var root = doc.documentElement;
//两种方式创徏节点
var root = doc.createElement("node1");
var root = doc.createNode(1,"node1","");
//节点文本
node.text = " this is a test";
//创徏属?br />var r = doc.createAttribute("id");
r.value="test";
//d属?br />node.setAttributeNode(r1);
//修改属性?br />node.setAttribute("attr", "this is test")
//得到节点属?br />node.getAttribute("attr")
//删除属?br />n.removeAttribute("class");
//d文本节点
n.appendChild(doc.createTextNode("this is a text node."));
//d注释
n.appendChild(doc.createComment("this is a comment\n"));
//复制节点
var m = n.cloneNode(true);
//删除节点
root.removeChild(node);
//创徏数据D?br />var c = doc.createCDATASection("this is a cdata");
c.text = "hi,cdata";
//查找节点两种Ҏ
var a = doc.getElementsByTagName("ttyp");
var a = doc.selectNodes("http://root/node1/node2"); //注:?/root/node1/node2”是XPath的写法,具体的用请参考关于XPath的资?br />
var a = doc.selectSingleNode("http://root/node1/node2");
//昄改节点的xml文本
a[i].xml
//节点的属性集?br />var attrs = node.attributes;
//查看属性的名字和?br />node.attributes[i].name
node.attributes[i].value
//XML保存Q需要在服务端,客户端用FSOQ(注:q个我未使用q,姑且先写在这。)
//doc.save();
//得到Ҏ点XML
var root = node.ownerDocument
Q注Q改面会不断更斎ͼƢ迎常来 ^_^Q?/p>