一检查是否为首页
<HTML XMLNS:IE>
<HEAD>
<STYLE>
@media all {
IE/:HOMEPAGE {behavior:url(#default#homepage)}
}
</STYLE>
<SCRIP T>
function fnVerify(){
sQueryHome = oHomePage.isHomePage(oHomeHref.value);
alert(sQueryHome);
event.returnValue = false;
}
</SCR IPT>
</HEAD>
<BODY>
<IE:HOMEPAGE ID="oHomePage" />
<INPUT TYPE=text ID=oHomeHref VALUE="http://www.microsoft.com">
<INPUT TYPE=button VALUE="Verify" οnclick="fnVerify()">
</BODY>
</HTML>
二判断一个层是否被隐藏
<div id="Layer1" style="position:absolute; width:200px; height:115px; z-index:1; display:none;">a</div>
<scr ipt language="JavaScr ipt">
<!--
Layer1.style.display=="none"?alert("你好"):alert("hidden");
//-->
</scri pt>
三如何做网站中滚动的文字,还带超链接
<marquee direction=up scrollamount=2 οnmοuseοver="this.stop();" οnmοuseοut="this.start();" width=50>
<a href="51jshttp://www.51js.com">51js</a>
</marquee>
四如何在java中使表单中的一个按钮无效
<form method=post action="" name="form1">
<input type="button" name="button1" value="51js.com">
</form>
<sc ript language="JavaSc ript">
<!--
form1.button1.disabled=true;
//-->
</scr ipt>
五可不可以做一个JS是只这个移动功能,在做网页时,想让哪个表格移动,就调用这个JS?
( 方法一 )
< LANGUAGE="Java">
<!--
var currentMoveObj = null; //当前拖动对象
var relLeft; //鼠标按下位置相对对象位置
var relTop;
function f_mdown(obj)
{
currentMoveObj = obj; //当对象被按下时,记录该对象
currentMoveObj.style.position = "absolute";
relLeft = event.x - currentMoveObj.style.pixelLeft;
relTop = event.y - currentMoveObj.style.pixelTop;
}
window.document.onmouseup = function()
{
currentMoveObj = null; //当鼠标释放时同时释放拖动对象
}
function f_move(obj)
{
if(currentMoveObj != null)
{
currentMoveObj.style.pixelLeft=event.x-relLeft;
currentMoveObj.style.pixelTop=event.y-relTop;
}
}
//-->
</>
<BODY>
<TABLE width="100" border=1 onselectstart="return false" style="position:absolute;left:50;top:50" οnmοusedοwn="f_mdown(this)" οnmοusemοve="f_move(this)">
<TR>
<TD bgcolor="#CCCCCC" align="center" style="cursor:move">title1</TD>
</TR>
<TR>
<TD align="center" height="60">content</TD>
</TR>
</TABLE>
<TABLE width="100" border=1 onselectstart="return false" style="position:absolute;left:350;top:250" οnmοusedοwn="f_mdown(this)" οnmοusemοve="f_move(this)">
<TR>
<TD bgcolor="#CCCCCC" align="center" style="cursor:move">title2</TD>
</TR>
<TR>
<TD align="center" height="60">content</TD>
</TR>
</TABLE>
</BODY>
( 方法二 )
< LANGUAGE="Java">
<!--
var currentMoveObj = null; //当前拖动对象
var relLeft; //鼠标按下位置相对对象位置
var relTop;
var zindex=-1;//控制被拖动对象的z-index值
function f_mdown(obj)
{
currentMoveObj = obj; //当对象被按下时,记录该对象
currentMoveObj.style.position = "absolute";
relLeft = event.x - currentMoveObj.style.pixelLeft;
relTop = event.y - currentMoveObj.style.pixelTop;
zindex=currentMoveObj.style.zIndex;//记录原z-index值
currentMoveObj.style.zIndex=10000;
}
window.document.onmouseup = function()
{ currentMoveObj.style.zIndex=zindex;//恢复
zindex=-1;
currentMoveObj = null; //当鼠标释放时同时释放拖动对象
}
function f_move(obj)
{
if(currentMoveObj != null)
{
currentMoveObj.style.pixelLeft=event.x-relLeft;
currentMoveObj.style.pixelTop=event.y-relTop;
}
}
//-->
</>
<BODY>
<TABLE width="100" border=1 onselectstart="return false" style="position:absolute;left:50;top:50" οnmοusedοwn="f_mdown(this)" οnmοusemοve="f_move(this)">
<TR>
<TD bgcolor="#CCCCCC" align="center" style="cursor:move">title1</TD>
</TR>
<TR>
<TD align="center" height="60">content</TD>
</TR>
</TABLE>
<TABLE width="100" border=1 onselectstart="return false" style="position:absolute;left:350;top:250" οnmοusedοwn="f_mdown(this)" οnmοusemοve="f_move(this)">
<TR>
<TD bgcolor="#CCCCCC" align="center" style="cursor:move">title2</TD>
</TR>
<TR>
<TD align="center" height="60">content</TD>
</TR>
</TABLE>
</BODY>
六刷新框架
我有一个框架网页,左右2个网页,现在我在主窗口(右页面)登陆后返回到主窗口页面,我如何让左边页面也能刷新呢?
<body οnlοad="parent.leftFrame.location.reload();">
或者在页面的最后:
<>
//leftFrame指左边框架的名字
parent.leftFrame.location.reload();
</>
七ID与name的区别
一个元素定义了id,引用该元素时直接用id属性,而name通常用在form中,且必须由document.form.***而来,也就是说,name属性定义的元素在脚本中是document对象的子对象。
我说不太清楚,反正这么个意思。
此外,ID标识在一个页面中原则上应该唯一,而name则不一定。
八我要用文字做按扭提交表单,不用input,怎么做?
<form name="form1">
<a href="###" οnclick="form1.submit()">提交</a>
</form>
九图片reset表单
<form name=jie>
<input value="text">
<img src="ltimg/F26.gif"
οnclick="document.jie.reset()"></form>
十页面有多个CSS做个check box让用户选择
<HTML>
<HEAD>
<TITLE>换肤技术新的尝试</TITLE>
<link ID="skin" rel="stylesheet" type="text/css">
< LANGUAGE=java>
<!--
function SetCookie(name,value){
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(2<argc)?argv<2>:null;
var path=(3<argc)?argv<3>:null;
var domain=(4<argc)?argv<4>:null;
var secure=(5<argc)?argv<5>:false;
document.cookie=name+"="+escape(value)+((expires==null)?"":("; expires="+expires.toGMTString()))+((path==null)?"":("; path="+path))+((domain==null)?"":("; domain="+domain))+((secure==true)?"; secure":"");
}
function GetCookie(Name) {
var search = Name + "=";
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset,end));
}
}
return returnvalue;
}
var thisskin;
thisskin=GetCookie("nowskin");
if(thisskin!="")
skin.href=thisskin;
else
skin.href="css.css";
function changecss(url){
if(url!=""){
skin.href=url;
var expdate=new Date();
expdate.setTime(expdate.getTime()+(24*60*60*1000*30));
//expdate=null;
//以下设置COOKIES时间为1年,自己随便设置该时间..
SetCookie("nowskin",url,expdate,"/",null,false);
}
}
//-->
</>
</HEAD>
<BODY>
<P>请选择下面的下拉菜单测试换肤效果</P>
<select οnchange="changecss(this.value)">
<option>选择样式单文件</option>
< language="java">
var csss=new Array();
csss<0>="001.css";
csss<1>="002.css";
csss<2>="003.css";
csss<3>="004.css";
var i;
for(i=0;i<4;i++)
if(thisskin==csss)
document.write("<option value=/""+csss+"/" selected>"+csss+"样式单文件</option>");
else
document.write("<option value=/""+csss+"/">"+csss+"样式单文件</option>");
</>
</select>
</BODY>
</HTML>
二十四只能输入数字正则
<input onKeyUp="value=value.replace(//D+/g,'')">
二十五只能输入中文正则
<input onKeyUp="value=value.replace(/< -}>/g,'')">
二十六隐去浏览器中当鼠标移到图片上跳出的工具栏
<img galleryimg="no">
或者
<head>
<meta http-equiv="imagetoolbar" content="no">
</head>
二十七同一个页面多种超链接样式
<style>
a.c1{color=red}
a.c2{color=blue}
a.c3{color=orange}
</style>
<a href="/" class="c1">ahcuor1</a>
<a href="/" class="c2">ahcuor2</a>
<a href="/" class="c3">ahcuor3</a>
二十八js动态给一个DIV插入一个表格
<div id="insertdiv">abc</div>
<scri pt language="JavaS cript">
<!--
insertdiv.innerText="";
var table1=document.createElement("<table border=1 width=500 bgcolor=black>");
table1.insertRow().insertCell().innerText="aaaaaaaaaaaaaaaa";
alert(table1.tagName);
document.getElementById("insertdiv").appendChild(table1);
//-->
</scr ipt>
二十九让英文字符串超出表格宽度自动换行
word-wrap: break-word; word-break: break-all;
三十form问题
form问题
在一个form中只有一个input输入框的情况下...在这个input输入框中按enter的话,form就会被提交。如何避免这样的情况出现?
<form οnsubmit="if(event.srcElement.name=='bb'){this.submit()}else{return false}">
<input name=a size=20>
<input type=button name=bb οnclick="submit();">
</form>
三十一CSS在文字下面加两横
<font style="border-bottom:4px double navy">huerreson</font>
<font style="border-bottom:1px solid navy;text-decoration:underline">huerreson</font>
<style>
.u2 { border-bottom:9px double navy;border-color:000000;text-decoration:underline;}
</style>
<span class='u2'>两横</span>
三十二用回车提交表单
<body onLoad="form.txt.focus()">
<form name="form">
<input name="txt" size="100" value="Mouse点我提交,按Enter也提交" onClick="form.submit()" onKeyDown="if (event.keyCode==13)form.submit()">
</form>
三十三让文字域里面的文字不可修改
禁用<input type="text" value="disabled" disabled>
不可修改<input type="text" value="readonly" readonly>
三十四通过层来实现渐淡淡出
<scr ipt language="JavaSc ript1.2">
function makevisible(cur,which){
if (which==0)
cur.filters.alpha.opacity=100
else
cur.filters.alpha.opacity=50
}
</scr ipt>
<div style="width:200px;height:200px;filter:alpha(opacity=50);border:1px solid #000;background:#efefef" onMouseOver="makevisible(this,0)" onMouseOut="makevisible(this,1)">
ywicc.com
</div>
三十五取消选取、防止复制
<body onselectstart="return false">
<p>111111111111111111111111111111111</p>
</body>
三十六关闭输入法
<input style="ime-mode:disabled">
三十七永远都会带着框架
<scr ipt language="JavaS cript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></scr ipt>
三十八防止被人frame
<SCRI PT LANGUAGE=JAVASCR IPT><!--
if (top.location != self.location)top.location=self.location;
// --></SCRI PT>
三十九网页将不能被另存为
<noscr ipt><iframe src=*.html></iframe></nosc ript>
四十删除时确认
<a href='javascr ipt:if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除&page=1"'>删除</a>
四十一网页不会被缓存
<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">
或者<META HTTP-EQUIV="expires" CONTENT="0">
四十二怎样让表单没有凹凸感
<input type=text style="border:1 solid #000000">
或
<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom: 1 solid #000000"></textarea>
四十三<div><span>&<layer>的区别
<div>(division)用来定义大段的页面元素,会产生转行
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行
<layer>是ns的标记,ie不支持,相当于<div>
四十四让弹出窗口总是在最上面
<body οnblur="this.focus();">
四十五不要滚动条
让竖条没有:
<body style='overflow:scroll;overflow-y:hidden'>
</body>
让横条没有:
<body style='overflow:scroll;overflow-x:hidden'>
</body>
两个都去掉?更简单了:
<body scroll="no">
</body>
四十六怎样去掉图片链接点击后,图片周围的虚线
<a href="#" onFocus="this.blur()"><img src="http://www.zydn.net/ltimg/F14.gif" border=0></a>
四十七电子邮件处理提交表单
<form name="form1" method="post" action="[url=mailto:****@***.com]mailto:****@***.com" enctype="text/plain">
<input type=submit>
</form>
四十八子窗口刷新父窗口
window.opener.location.reload()
四十九在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
<STYLE>
body
{background-image:url(images/js.gif); background-repeat:no-repeat; background-position:center;background-attachment: fixed}
</STYLE>
五十检查一段字符串是否全由数字组成
<scr ipt language="Javasc ript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></sc ript>
五十一限制下拉选择的宽度
<select name="select" style="width:300"></select>
五十二打开一个新的窗口,而窗口的宽度和高度则是这个图片的实际的高和宽
<img src="http://www.zydn.net/ltimg/F28.gif" onClick="window.open('','','width='+this.width+',height='+this.height)">
五十三弹出的窗口居中
方法一
<scr ipt>
myWin=window.open("about:blank","","width=200,height=160");
myWin.moveTo(screen.width/2-100,screen.height/2-80);
</scri pt>
方法二
<scri pt>
t = 200;
l = 200;
window.open('about:blank','','width='+l+',height='+t+',top='+(screen.availHeight/2-t/2)+',left='+(screen.availWidth/2-l/2));
</scri pt>
五十四用IE弹出IE窗口
<scr ipt>
window.showModalDialog("about:<scr ipt>window.open('','w_name','status=no');window.close()<//scri pt>","","dialogwidth=0px;dialogheight=0px") //用模式窗口做个过度就可以了
window.open("你要弹出的地址","w_name","")
</scri pt>
五十五单击表格中某个单元格则这个单元格变颜色
<sc ript language="JavaScri pt">
function test(t) {
for (var i=0; i<t.rows.length; i++)
for (var j=0; j<t.rows.cells.length; j++)
t.rows.cells.bgColor = t.rows.cells == event.srcElement ? 'red' : '';
}
</scrip t>
<table width="300" cellspacing="1" bgcolor="black" onClick="test(this)">
<tr bgcolor="white" height="20"><td> </td><td> </td><td> </td></tr>
<tr bgcolor="white" height="20"><td> </td><td> </td><td> </td></tr>
<tr bgcolor="white" height="20"><td> </td><td> </td><td> </td></tr>
</table>
五十八 ASP编程中几个个非常有用的例子
1.如何用Asp判断你的网站的虚拟物理路径
答:使用Mappath方法
< p align="center" >< font size="4" face="Arial" >< b >
The Physical path to this virtual website is:
< /b >< /font >
< font color="#FF0000" size="6" face="Arial" >
< %= Server.MapPath("/")% >
< /font >< /p >
2.我如何知道使用者所用的浏览器?
答:使用the Request object方法
strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
If Instr(strBrowser,"MSIE") < > 0 Then
Response.redirect("ForMSIEOnly.htm")
Else
Response.redirect("ForAll.htm")
End If
3.如何计算每天的平均反复访问人数
答:解决方法
< % startdate=DateDiff("d",Now,"01/01/1990")
if strdate< 0 then startdate=startdate*-1
avgvpd=Int((usercnt)/startdate) % >
显示结果
< % response.write(avgvpd) % >
that is it.this page have been viewed since November 10,1998
4.如何显示随机图象
< % dim p,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic="graphix/randompics/"&p&".gif"
% >
显示
< img src="< %=dpic% >" >
5.如何回到先前的页面
答:< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a >
或用图片如:< img src="arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER")% >" >
6.如何确定对方的IP地址
答:< %=Request.serverVariables("REMOTE_ADDR)% >
7.如何链结到一副图片上
答:< % @Languages=vbs cript % >
< % response.expires=0
strimagename="graphix/errors/erroriamge.gif"
response.redirect(strimagename)
% >
8.强迫输入密码对话框
答:把这句话放载页面的开头
< % response.status="401 not Authorized"
response.end
% >
9.如何传递变量从一页到另一页
答:用 HIDDEN 类型来传递变量
< % form method="post" action="mynextpage.asp" >
< % for each item in request.form % >
< input namee="< %=item% >" type="HIDDEN"
value="< %=server.HTMLEncode(Request.form(item)) % >" >
< % next % >
< /form >
10.为何我在 asp 程序内使用 msgbox,程序出错说没有权限
答: 由于 asp 是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止 这个函数,并胡乱告诉你 (:) 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as follows:
< % yourVar="测试对话框"% >
< % s cript language=javas cript >
alert("< %=yourvar% >")
< /s cript >
11.有没有办法保护自己的源代码,不给人看到
答: 可以去下载一个微软的Windows s cript Encoder,它可以对asp的脚本和客户端javas cript/vbs cript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有s cript engine 5(装一个ie5就有了)才能执行。
12.怎样才能将 query string 从一个 asp 文件传送到另一个?
答:前者文件加入下句: Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))
13.global.asa文件总是不起作用?
答: 只有web目录设置为web application, global.asa才有效,并且一个web application的根目录下 global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
答: Internet Sevices Manager - > 选择default web site - >右鼠键- >菜单属性-〉主目录- > 应用程序设置(Application Setting)- > 点击按钮 "配置"- > app mapping - >点击按钮"Add" - > executable browse选择 /WINNT/SYSTEM32/INETSRV/ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.DELETE 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。
15.如何注册组件
答:有两种方法。
第 一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:/temp/regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。当使用这种方法注册完毕组件后,该组件 必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况 下,要取消注册这个dll,使用:regsvr32 /u aspobject.dll example c:/temp/regsvr32 /u aneiodbc.dll
第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:
1) 打开IIS管理控制台。
2) 展开transaction server,右键单击"pkgs installed"然后选择"new package"。
3) 单击"create an empty package"。
4) 给该包命名。
5) 指定administrator帐号或则使用"interactive"(如果服务器经常是使用administrator 登陆的话)。
6) 现在使用右键单击你刚建立的那个包下面展开后的"components"。选择 "new then component"。
7) 选择 "install new component" 。
8) 找到你的.dll文件然后选择next到完成。
要删除这个对象,只要选择它的图标,然后选择delete。
附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。
16. ASP与Access数据库连接:
<%@ language=VBs cript%>
<%
dim conn,mdbfile
mdbfile=server.mappath("数据库名称.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile
%>
17. ASP与SQL数据库连接:
<%@ language=VBs cript%>
<%
dim conn
set conn=server.createobject("ADODB.connection")
con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称
%>
建立记录集对象:
set rs=server.createobject("adodb.recordset")
rs.open SQL语句,conn,3,2
18. SQL常用命令使用方法:
(1) 数据记录筛选:
sql="select * from 数据表 where 字段名=字段值 order by 字段名 "
sql="select * from 数据表 where 字段名 like %字段值% order by 字段名 "
sql="select top 10 * from 数据表 where 字段名 order by 字段名 "
sql="select * from 数据表 where 字段名 in (值1,值2,值3)"
sql="select * from 数据表 where 字段名 between 值1 and 值2"
(2) 更新数据记录:
sql="update 数据表 set 字段名=字段值 where 条件表达式"
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"
(3) 删除数据记录:
sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)
(4) 添加数据记录:
sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)
(5) 数据记录统计函数:
AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加
引用以上函数的方法:
sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)
用 rs("别名") 获取统的计值,其它函数运用同上。
(5) 数据表的建立和删除:
CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )
例:CREATE TABLE tab01(name varchar(50),datetime default now())
DROP TABLE 数据表名称 (永久性删除一个数据表)
19. 记录集对象的方法:
rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update 更新数据表记录
五十九 window.open的例子和使用方法以及参数说明(完整版)
一、window.open()支持环境: JavaScri pt1.0+/JScr ipt1.0+/Nav2+/IE3+/Opera3+
二、基本语法:
window.open(pageURL,name,parameters)
其中:
pageURL 为子窗口路径
name 为子窗口句柄
parameters 为窗口参数(各参数用逗号分隔)
三、示例:
<SCR IPT>
<!--
window.open ('page.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')
//写成一行
-->
</SCRI PT>
脚本运行后,page.html将在新窗体newwindow中打开,宽为100,高为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。
请对照。
上例中涉及的为常用的几个参数,除此以外还有很多其他参数,请见四。
四、各项参数
其中yes/no也可使用1/0;pixel value为具体的数值,单位象素。
参数 | 取值范围 | 说明
| |
alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
depended | yes/no | 是否和父窗口同时关闭
directories | yes/no | Nav2和3的目录栏是否可见
height | pixel value | 窗口高度
hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
innerHeight | pixel value | 窗口中文档的像素高度
innerWidth | pixel value | 窗口中文档的像素宽度
location | yes/no | 位置栏是否可见
menubar | yes/no | 菜单栏是否可见
outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
resizable | yes/no | 窗口大小是否可调整
screenX | pixel value | 窗口距屏幕左边界的像素长度
screenY | pixel value | 窗口距屏幕上边界的像素长度
scrollbars | yes/no | 窗口是否可有滚动栏
titlebar | yes/no | 窗口题目栏是否可见
toolbar | yes/no | 窗口工具栏是否可见
Width | pixel value | 窗口的像素宽度
z-look | yes/no | 窗口被激活后是否浮在其它窗口之上
六十 怎样在一个页面上实现竖排文字
<HTML>
<STYLE>
.clsHoriz { writing-mode:lr-tb }
</STYLE>
</HEAD>
<BODY>
<H1>writing-mode Attribute</H1>
<P>This example shows how to use the <B>writing-mode</B> attribute to
display horizontal text (<SPAN >lr-tb</SPAN>) within vertical text
(<SPAN>tb-rl</SPAN>).</P>
<P>The following <B>DIV</B> element has a <B>writing-mode</B> of tb-rl
and contains text and <B>SPAN</B> child elements. The text flow alternates
between vertical and horizontal. Note the effect of the <B>BR</B> element
after the second set of vertical text.</P>
<DIV STYLE="writing-mode:tb-rl">
First Set of Vertical Text
<SPAN CLASS="clsHoriz">First Set of Horizontal Text</SPAN>
Second Set of Vertical Text plus a line break<BR>
<SPAN STYLE="writing-mode:lr-tb">Second Set of Horizontal Text</SPAN>
Third Set of Vertical Text
<SPAN CLASS="clsHoriz">Third Set of Horizontal Text</SPAN>
</DIV>
</BODY>
</HTML>
六十一 DHTML中重要的属性方法 (献给DHTML初学者)
作者:mrfool转贴 整理日期:2004年6月17日
由 于DOM(文档对象模型)概念的推出,这个API使HTML如虎添翼,但是有些学DHTML的朋友还是有些困挠,只是因为目前的手册的书写不太科学,是按 字母来分的,不便查阅.其实DOM中最关键是要掌握节点与节点之间的关系(between node and node),想学习DHTML中的DOM千万不要从头到尾地看遍所有的属性和方法,你有三国时张松的"过目不忘"的本领吗?没有吧,那就听我分析一下:
其实DOM教给我们的就是一个层次结构,你可以理解为一个树形结构,就像我们的目录一样,一个根目录,根目录下有子目录,子目录下还有子目录……
根节点:
DOM把层次中的每一个对象都称之为节点(NODE),以HTML超文本标记语言为例:整个文档的一个根就是<html>,在DOM中可以使用document.documentElement来访问它,它就是整个节点树的根节点(ROOT)
子节点:
一般意义上的节点,根节点以下最大子节点就是主文档区<body>了,要访问到body标签,在脚本中应该写:
document.body
body区以内所有的文本及HTML标签都是文档的节点,分别称为文本节点、元素节点(或者叫标签节点),大家知道HTML说到底只是文本而矣,不论怎么样的网页必然由这两个节点组成,也只能由这两个节点组成
节点之间的关系:
节点之间的关系也是DOM中最重要的一个关节,如何正确地引用到节点对象,一定要清楚节点树各个节点的相互描述方式,在DHTML里,Java脚本就用了各个节点对象的一整套方法和属性去描述另外的节点对象。
节点的绝对引用:
返回文档的根节点
document.documentElement
返回当前文档中被击活的标签节点
document.activeElement
返回鼠标移出的源节点
event.fromElement
返回鼠标移入的源节点
event.toElement
返回激活事件的源节点
event.srcElement
节点的相对引用:(设当前对节点为node)
返回父节点
node.parentNode
node.parentElement
返回子节点集合(包含文本节点及标签节点)
node.childNodes
返回子标签节点集合
node.children
返回子文本节点集合
node.textNodes
返回第一个子节点
node.firstChild
返回最后一个子节点
node.lastChild
返回同属下一个节点
node.nextSibling
返回同属上一个节点
node.previousSibling
节点的各种操作:(设当前的节点为node)
新增标签节点句柄:
document.createElement(sNode) //参数为要新添的节点标签名,例:newnode=document.createElement("div");
1、添加节点:
追加子节点:
node.appendChild(oNode) //oNode为生新增的节点句柄,例:node.appendChild(newnode)
应用标签节点
node.applyElment(oNode,sWhere)//oNode为生新增的节点句柄,sWhere有两个值:outside / inside,加在当前节点外面还是里面
插入节点
inode.insertBefore()
node.insertAdjacentElement()
node.replaceAdjacentText()
2、修改节点:
删除节点
node.remove()
node.removeChild()
node.removeNode()
替换节点
node.replaceChild()
node.replaceNode()
node.swapNode()
2、复制节点:
返回复制复制节点引用
node.cloneNode(bAll)//bAll为布尔值,true / false 是否克隆该节点所有子节点
3、节点信息
是否包含某节点
node.contains()
是否有子节点
node.hasChildNodes()
六十二 JavaSc ript Js事件触发列表与解说
一般事件 | ||
事件 | 浏览器支持 | 描述 |
onClick | HTML: 2|3|3.2|4 Browser: IE3|N2|O3 | 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 |
onDblClick | HTML: 2|3|3.2|4 Browser:IE4|N4|O | 鼠标双击事件 |
onMouseDown | HTML: 2|3|3.2|4 Browser:IE4|N4|O | 鼠标上的按钮被按下了 |
onMouseUp | HTML: 2|3|3.2|4 Browser:IE4|N4|O | 鼠标按下后,松开时激发的事件 |
onMouseOver | HTML: 2|3|3.2|4 Browser:IE3|N2|O3 | 当鼠标移动到某对象范围的上方时触发的事件 |
onMouseMove | HTML: 2|3|3.2|4 Browser:IE4|N4|O | 鼠标移动时触发的事件 |
onMouseOut | HTML: 2|3|3.2|4 Browser:IE4|N3|O3 | 当鼠标离开某对象范围时触发的事件 |
onKeyPress | HTML: 2|3|3.2|4 Browser:IE4|N4|O | 当键盘上的某个键被按下并且释放时触发的事件.<注意:页面内必须有被聚焦的对象> |
onKeyDown | HTML: 2|3|3.2|4 Browser:IE4|N4|O | 当键盘上某个按键被按下时触发的事件<注意:页面内必须有被聚焦的对象> |
onKeyUp | HTML: 2|3|3.2|4 Browser:IE4|N4|O | 当键盘上某个按键被按放开时触发的事件<注意:页面内必须有被聚焦的对象> |
页面相关事件 | ||
事件 | 浏览器支持 | 描述 |
onAbort | HTML: 2|3|3.2|4 Browser:IE4|N3|O | 图片在下载时被用户中断 |
onBeforeUnload | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当前页面的内容将要被改变时触发的事件 |
onError | HTML: 2|3|3.2|4 Browser:IE4|N3|O | 捕抓当前页面因为某种原因而出现的错误,如脚本错误与外部数据引用的错误 |
onLoad | HTML: 2|3|3.2|4 Browser:IE3|N2|O3 | 页面内空完成传送到浏览器时触发的事件,包括外部文件引入完成 |
onMove | HTML: 2|3|3.2|4 Browser:IE|N4|O | 浏览器的窗口被移动时触发的事件 |
onResize | HTML: 2|3|3.2|4 Browser:IE4|N4|O | 当浏览器的窗口大小被改变时触发的事件 |
onScroll | HTML: 2|3|3.2|4 Browser:IE4|N|O | 浏览器的滚动条位置发生变化时触发的事件 |
onStop | HTML: 2|3|3.2|4 Browser:IE5|N|O | 浏览器的停止按钮被按下时触发的事件或者正在下载的文件被中断 |
onUnload | HTML: 2|3|3.2|4 Browser:IE3|N2|O3 | 当前页面将被改变时触发的事件 |
表单相关事件 | ||
事件 | 浏览器支持 | 描述 |
onBlur | HTML: 2|3|3.2|4 Browser:IE3|N2|O3 | 当前元素失去焦点时触发的事件 <鼠标与键盘的触发均可> |
onChange | HTML: 2|3|3.2|4 Browser:IE3|N2|O3 | 当前元素失去焦点并且元素的内容发生改变而触发的事件 <鼠标与键盘的触发均可> |
onFocus | HTML: 2|3|3.2|4 Browser:IE3|N2|O3 | 当某个元素获得焦点时触发的事件 |
onReset | HTML: 2|3|3.2|4 Browser:IE4|N3|O3 | 当表单中RESET的属性被激发时触发的事件 |
onSubmit | HTML: 2|3|3.2|4 Browser:IE3|N2|O3 | 一个表单被递交时触发的事件 |
滚动字幕事件 | ||
事件 | 浏览器支持 | 描述 |
onBounce | HTML: 2|3|3.2|4 Browser:IE4|N|O | 在Marquee内的内容移动至Marquee显示范围之外时触发的事件 |
onFinish | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当Marquee元素完成需要显示的内容后触发的事件 |
onStart | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当Marquee元素开始显示内容时触发的事件 |
编辑事件 | ||
事件 | 浏览器支持 | 描述 |
onBeforeCopy | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当页面当前的被选择内容将要复制到浏览者系统的剪贴板前触发的事件 |
onBeforeCut | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当页面中的一部分或者全部的内容将被移离当前页面<剪贴>并移动到浏览者的系统剪贴板时触发的事件 |
onBeforeEditFocus | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当前元素将要进入编辑状态 |
onBeforePaste | HTML: 2|3|3.2|4 Browser:IE5|N|O | 内容将要从浏览者的系统剪贴板传送<粘贴>到页面中时触发的事件 |
onBeforeUpdate | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当浏览者粘贴系统剪贴板中的内容时通知目标对象 |
onContextMenu | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当浏览者按下鼠标右键出现菜单时或者通过键盘的按键触发页面菜单时触发的事件 <试试在页面中的中加入onContentMenu="return false"就可禁止使用鼠标右键了> |
onCopy | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当页面当前的被选择内容被复制后触发的事件 |
onCut | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当页面当前的被选择内容被剪切时触发的事件 |
onDrag | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当某个对象被拖动时触发的事件 <活动事件> |
onDragDrop | HTML: 2|3|3.2|4 Browser:IE|N4|O | 一个外部对象被鼠标拖进当前窗口或者帧 |
onDragEnd | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当鼠标拖动结束时触发的事件,即鼠标的按钮被释放了 |
onDragEnter | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当对象被鼠标拖动的对象进入其容器范围内时触发的事件 |
onDragLeave | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当对象被鼠标拖动的对象离开其容器范围内时触发的事件 |
onDragOver | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当某被拖动的对象在另一对象容器范围内拖动时触发的事件 <活动事件> |
onDragStart | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当某对象将被拖动时触发的事件 |
onDrop | HTML: 2|3|3.2|4 Browser:IE5|N|O | 在一个拖动过程中,释放鼠标键时触发的事件 |
onLoseCapture | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当元素失去鼠标移动所形成的选择焦点时触发的事件 |
onPaste | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当内容被粘贴时触发的事件 |
onSelect | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当文本内容被选择时的事件 |
onSelectStart | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当文本内容选择将开始发生时触发的事件 |
数据绑定 | ||
事件 | 浏览器支持 | 描述 |
onAfterUpdate | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当数据完成由数据源到对象的传送时触发的事件 |
onCellChange | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当数据来源发生变化时 |
onDataAvailable | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当数据接收完成时触发事件 |
onDatasetChanged | HTML: 2|3|3.2|4 Browser:IE4|N|O | 数据在数据源发生变化时触发的事件 |
onDatasetComplete | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当来子数据源的全部有效数据读取完毕时触发的事件 |
onErrorUpdate | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当使用onBeforeUpdate事件触发取消了数据传送时,代替onAfterUpdate事件 |
onRowEnter | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当前数据源的数据发生变化并且有新的有效数据时触发的事件 |
onRowExit | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当前数据源的数据将要发生变化时触发的事件 |
onRowsDelete | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当前数据记录将被删除时触发的事件 |
onRowsInserted | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当前数据源将要插入新数据记录时触发的事件 |
外部事件 | ||
事件 | 浏览器支持 | 描述 |
onAfterPrint | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当文档被打印后触发的事件 |
onBeforePrint | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当文档即将打印时触发的事件 |
onFilterChange | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当某个对象的滤镜效果发生变化时触发的事件 |
onHelp | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当浏览者按下F1或者浏览器的帮助选择时触发的事件 |
onPropertyChange | HTML: 2|3|3.2|4 Browser:IE5|N|O | 当对象的属性之一发生变化时触发的事件 |
onReadyStateChange | HTML: 2|3|3.2|4 Browser:IE4|N|O | 当对象的初始化属性值发生变化时触发的事件 |
六十三 引入样式表(css)的四种方式
一、使用STYLE属性: 将STYLE属性直接加在个别的元件标签里。
<元件(标签) STYLE="性质(属性)1: 设定值1; 性质(属性)2: 设定值2; ...}
例如:
<TD STYLE="COLOR:BLUE; font-size:9pt; font-family:"标楷体"; line-height:150%>
这种用法的优点 是可灵巧应用样式於各标签中,但是缺点则是没有整篇文件的『统一性』。
二、使用STYLE标签: 将样式规则写在<STYLE>...</STYLE>标签之中。
<STYLE TYPE="text/css">
<!--
样式规则表
-->
</STYLE>
例如:
<STYLE TYPE="text/css">
<!--
BODY {
color: BLUE;
background: #FFFFCC;
font-size: 9pt}
TD, P {
COLOR: GREEN;
font-size: 9pt}
-->
</STYLE>
通 常是将整个的 <STYLE>...</STYLE>结构写在网页的<HEAD> </HEAD>部份之中。这种用法的优点就是在於整篇文件的统一性,只要是有声明的的元件即会套用该样式规则。缺点就是在个别元件的灵活度不 足。
三、使用 LINK标签: 将样式规则写在.css的样式档案中,再以<LINK>标签引入。
假设我们把样式规则存成一个example.css的档案,我们只要在网页中加入
<LINK REL=STYLESHEET TYPE="text/css" HREF="example.css">
即可套用该样式档案中所制定好的样式了。 通常是将LINK标签写在网页的<head></head>部份之中。这种用法的优点就是在於可以把要套用相同样式规则的数篇文件都指定到同一个样式档案即可。缺点也是在个别文件或元件的灵活度不足。
四、使用@import引入: 跟LINK用法很像,但必 放在<STYLE>...</STYLE> 中。
<STYLE TYPE="text/css">
<!--
@import url(引入的样式表的位址、路径与档名);
-->
</STYLE>
例如:
<STYLE TYPE="text/css">
<!--
@import url( http://yourweb/ example.css);
-->
</STYLE>
要注意的是,行末的分号是绝对不可少的!
六十四 得到当前网页名字的两种方法
<scri pt>
var str=location.pathname;
a=str.substr(str.lastIndexOf("/")+1)
alert(a)
a=location.pathname.replace(/(.+)<///>/,"")
alert(a)
</sc ript>
六十五 链接注释里显示图片的脚本
<table width=100 style="position: relative; left: 220;top:120">
<tr><td width="100%" style="visibility: hidden" id=jj><font color=red>这是本站的图片</font><br><img src=http://www.zydn.net/ltimg/F14.gif></td></tr>
</table>
<span id=ye style="position: absolute; left: 200; top: 200" οnmοuseοver="jj.style.visibility='visible'" οnmοuseοut="setTimeout('jj.style.visibility=/'hidden/'',3000)"><a href=http://www.ziyuetang.com>紫月堂俱乐部</a></span>
六十六 提交页面post 和 get方法有什么区别
1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后,如 http://www.domain.com/test.asp?name=51js&password=51js, 数据都会直接显示在 url 上,就像用户点击一个链接一样;Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一起传送给服务器端交由 action 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理
2、 Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容
3、 Get 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节
建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用 Post 方法
4、 Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框
建议:出于安全性考虑,建议最好使用 Post 提交数据
六十七 最简单的计数器,防刷新
<% dim conn
dim connstr
dim db
db="cnt.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open connstr%>
gg=""
<%'on error resume next
response.expires=0
application.lock
dim style,rs,sql,todaycount,todayipcount,ccount,g,c,i,countlong,todaydate
dim userip,vpage,connip,country,city,tip,sip1,sip2,sip3,sip4,DBPathip,connstrip,ip,screenwidth
dim url1,url2,url,urlview,urlimg
dim cookiepath
url1=request.servervariables("server_name")
url2=request.servervariables("url")
url=" http://"&url1&url2
urlimg=replace(url,"count.asp","img")
set rs=server.createobject("adodb.recordset")
sql="select * from cn where id=1"
rs.open sql,conn,3,2
'*************一天一台机子记数一次*************
if request.cookies("dscount")=empty then
response.cookies("dscount")="yes"
rs("count")=rs("count")+1
rs.update
end if
ccount=rs("count")
rs.close
set rs=nothing
conn.close
set conn=nothing
application.unlock
'*******************用图片显示访问总数***********************
g=cstr(ccount)
c=len(g)
countlong=6
if int(c)<int(countlong) then
for i=1 to int(countlong)-int(c)%>
gg=gg+"<img border=0 src=<%=urlimg%>/0.gif>"
<%
next
end if
for i=1 to c
%>
gg=gg+"<img border=0 src=<%=urlimg%>/<%=mid(g,i,1)%>.gif>"
<%
next
%>
document.write (gg)
<%'response.write err.deion%>
六十八 <marquee>标记详解
<marquee
aligh=left|center|right|top|bottom
bgcolor=#n
direction=left|right|up|down
behavior=type
height=n
hspace=n
scrollamount=n
Scrolldelay=n
width=n
VSpace=n
loop=n>
可以看出由于活动字幕的显示方式多种多样,可选的参数也很多。下面解释一下各参数的含义:
align:是设定活动字幕的位置,不过除了居左、居中、居右三种位置外,又增加靠上(align=top)和靠下(align=bottom)两种位置。
Bgcolor:用于设定活动字幕的背景颜色,一般是十六进制数。
Direction:用于设定活动字幕的滚动方向是向左、向右、向上、向下。
Behavior:用于设定滚动的方式,主要由三种方式:behavior="scroll"表示由一端滚动到另一端;behavior="slide":表示由一端快速滑动到另一端,且不再重复; behavior="alternate"表示在两端之间来回滚动。
Height:用于设定滚动字幕的高度。
Width:则设定滚动字幕的宽度。
Hspace和vspace:分别用于设定滚动字幕的左右边框和上下边框的宽度。
Scrollamount:用于设定活动字幕的滚动距离。
scrolldelay:用于设定滚动两次之间的延迟时间。
Loop:用于设定滚动的次数,当loop=-1表示一直滚动下去,直到页面更新。
<marquee>标记的默认情况是向左滚动无限次,字幕高度是文本高度,滚动范围:水平滚动的宽度是当前位置的宽度;垂直滚动的高度是当前位置的高度。