您的位置:首页 > Web前端 > HTML

(转)DHTML学习笔记

2012-03-13 10:54 99 查看
DHTML学习笔记(转)

目录:

1、网页技术的三方面

2、DHTML的组成

3、rgb颜色表示

4、js删除提示

5、前进、后退、返回某页、刷新、关闭

7、定时关闭网页

8、背景音乐

9、浏览器显示不同格式

10、链接的不同方式target

11、强制不缓存

12、定时刷新、幻灯片效果

13、大图片提前载入

15、移动文字

16、浮动背景(背景图像不滚动 )

17、让背景图像不平铺的CSS样式表

18、判断不同浏览器

19、定义本网页的关键字

21、改变链接在浏览器状态栏信息

26、打印按钮

27、查看源码按钮

28、去掉页面滚动条

30、水平线、垂直线

31、下拉式菜单中的链接来打开一个新的窗口

34、跳到页面的顶部

36.一个站点不同页面间播放同一音频文件

38、定制新窗口

40. 删除图片链接的蓝色边框

47. table标签经验

48.$("name")

49.js读java变量:

50、js显示下拉框默认值

51、 (空格)占一个字符或两个字符

52、在线播放:

53、树状显示js代码

54、鼠标移到就显示下拉菜单

55、防止下载网页信息的简单方法(防君子不防小人,对此问题目前没有绝对办法)

56、js设置输入框焦点

57、option标签没有value属性时

58、不保留缓存方法:

59、全选、全不选js方法

1.网页技术分为三个方面:静态网页、网页美工、动态网页。

2.DHTML(动态HTML)是一种通过各种技术的综合而得以实现的概念,包括三部分:HTML、Script(JavaScrip or VBScript)、CSS(Cascading

Style Sheets)。

3.颜色“#rrggbb”六位十六进制数。

4.js提示(删除时)

1)每一个链接处都需要

<a href="#" onclick="return(confirm('删除后无法恢复,您确定删除吗?'))">删除</a>

2)每一个按钮处都需要

<input type=button value="删除" onclick="javascript:reload()">

<script type="text/javascript"> 

function reload() {

if (confirm("确认?"))

{

var url="#";

window.location.href=url;

}

}

3)页面内定义一次就可以

<a href="#" >删除</a>

<script language="javascript" type="text/javascript">

function delete_confirm(){

if(event.srcElement.outerText=="删除" || event.srcElement.value=="删除")

event.returnValue=confirm("删除后将不能恢复,您确认执行删除操作么?");

}

document.onclick=delete_confirm;

</script>

5.前进、后退、返回某页、刷新、关闭

返回前页:使用OnClick="history.go(-1)"

返回主页:使用OnClick='top.location.href="index.jsp"'

<a href="javascript:history.back()">后退</a>

<a href="javascript:history.go()">前进</a>

<a href="javascript:location.reload()">刷新</a>

7.定时关闭网页

在head区加入

<SCRIPT LANGUAGE="javascript">

setTimeout('window.close();',2000);

</SCRIPT>

表示两秒后自动关闭窗口。

8. 背景音乐 

显示操作面板:

在相应地方加<embed src="aladdin.mid" width="140" height="35" autostart=true controls="middleconsole">

不显示操作面板:

在页中任意地方加<embed src="aladdin.mid" hidden=true autostart=true loop=true>

或<embed src="aladdin.mid" autostart="true" loop="2" width="80" height="30">

9. 如何让浏览器正确显示word 文件格式?

为了正确处理word 等格式,你需要在HTML文件中设置好该文件类型

<meta http-equiv="Content-Type" content="application/msword"> 

还有其它经常设置的文件类型:

application/msword Microsoft Word Document

application/pdf PDF Document

application/wordperfect6.0 WordPerfect 6.0 Document

application/zip ZIP archive

audio/x-wav WAV audio format

audio/midi MIDI audio format

audio/x-pn-realaudio RealAudio

image/gif GIF image format

image/jpeg JPEG image format

image/png PNG image format

text/html HTML document

text/plain Plain text

video/mpeg MPEG video format

video/quicktime QuickTime video format

video/x-msvideo AVI video format

10. 目标窗口target及其设置

目标窗口是页面链接所指内容显示的窗口,也就是当你单击了页面某一个链接后,该链接所指的内容在那个窗口显示。大多数情况下,我们无

需关心它,因为一般都是在同一窗口显示。target是链接标签<a>的属性,它的作用就是指定目标窗口,target有以下几个值:

1)_blank

     <a href="document.html" target="_blank">my document</a>

     浏览器会另开一个新窗口显示document.html文档

2)_parent

     <a href="document.html" target="_parent">my document</a>

     指向父frameset文档

3)_self

     <a href="document.html" target="_self">my document</a>

     把文档调入当前页框

4)_top

      <a href="document.html" target="_top">my document</a> 

      去掉所有页框并用document.html取代frameset文档

5)***

      在链接处加target="***"语句,其中main为frame名,就可以在***frame里打开页面。

小技巧:可以在文件头加:<base target="_self">,则此页所有链接都在本页打开

12. 自动刷新 

定时刷新:<META HTTP-EQUIV="Refresh" content="10; URL=http://自己的URL">

幻灯片效果:语句类似上面,但在页面1中URL指向页面2,而页面2指向页面3 ... 

页面n指回页面1,即可实现循环显示页面的效果

13、大图片提前载入

如果您的站点中后面的页有大图形需要显示,您不妨在第一页中提前载入。把语句:

<img src="image.jpg" width=0 height=0> ,其中width,height要设置为0, 放在第一页HTML中的任何地方。

如果您的访问者在第一页停留的时间足够长,当他进入第二页时,图象会立即显示出来

15. 移动文字

这在主页上是常用的,其制作方法很简单。

<marquee>要移动的文字</marquee>

1.移动 的方向:<direction=!> !=left, right

2.移动的方式:<bihavior=!> !=scroll ,side,alternate

3.循环次数:<loop=!> !=次数。若未指定则循环不止。

4 循环速度:<scrollamount=!> !=数

16. 浮动背景(背景图像不滚动 )

当你拉住下拉条时,背景不动。

<body backgroud="#ffff" bgproperties="fixed">

或用CSS样式表定义:

<style type="text/css">

<!--

body { background-image: url(image/bg.gif); background-attachment: fixed}

-->

</style>

17. 让背景图像不平铺的CSS样式表

<style type="text/css">

<!--

body { background-image: url(image/bg.gif); background-repeat: no-repeat}

-->

</style>

18、判断不同浏览器

目前微软和网景的浏览器并不能完全兼容所有网页,有的在某种浏览器里非常漂亮,而用其它浏览器查看时却一团糟。如果你需要测试浏览器,可

以加入以下javascript代码并保存单独一个网页:

<script language="javascript">

function TestBrowser(){

ie = ((navigator.appName ==

"Microsoft Internet Explorer") & & 

(parseInt(navigator.appVersion) >= 3 ))

ns = ((navigator.appName == "Netscape") & & 

(parseInt(navigator.appVersion) >= 3 ))

if (ns) {

setTimeout(''location.href="nn4.htm"'',10);

} else {

setTimeout(''location.href="ie4.htm"'',10);

}

}

</script>

19. 定义本网页的关键字

在网页中加入关键字,可以供某些搜索站台机器人的使用,它们会利用该关键字为你的网站做索引,这样,当别人用关键字搜索网站时,如果

你的网页包含该关键字,那么就可以被列出了,定义本网页关键字,可以加入以下代码:

<meta name="keywords" content="html,dreamweaver,flash,css">

  content 所包含的就是关键字,你可以自行设置。

  这里有个技巧,你可以重复某一个单词,这样可以提高自己网站的排行位置,如:

<meta name="keywords" content="dreamweaver,dreamweaver,dreamweaver">

21. 改变链接在浏览器状态栏信息

当指向一个链接时,该链接的信息会出现在浏览器状态栏里,如果需要隐藏信息,可以如下设置:

<a href="http://www.yhyhw.com" onMouseOver="window.status='none';return true">test</a>

  如果想要指向一个链接时,浏览器状态栏里出现特定的信息,把none 改成你需要的文字即可。

26. 打印按钮

<form>

<input name="Print" onClick="window.print();

return false" type="button" value="Print">

</form>

27. 查看源码按钮

<input type=button name="view" value="查看源码" onClick=''window.location="view-source:" +window.location.href'' style="font

-size:9pt">

28. 去掉页面滚动条

在body 中加入样式表控制,代码如下:

<body bgcolor="#000000" leftmargin="0" topmargin="0" 

style="overflow-x: hidden; overflow-y: hidden; width: 100%">

30. 水平线、垂直线

插入HR很简单:<hr size="1">。如何让它垂直呢,更简单:<hr size="100" width="1">

31. 下拉式菜单中的链接来打开一个新的窗口

先把下拉式菜单设置好,如:

<form method="POST">

<select name="D1" size="1">

<option value="http://www.163.com/">网易</option>

<option value="http://www.suho.com/">搜狐</option></select>

<input type="submit" value="确定" name="B1"><input type="reset" value="重置"name="B2"></p></form>

然后把<select name="D1" size="1">改为

<select onChange="javascript:window.open(this.options[this.selectedIndex].value)">即可。

34. 跳到页面的顶部

当浏览者浏览到页面底部后,你需要提供一个单击,让浏览者方便的跳到页面顶部,加入以下代码:

<a href="#top">返回顶部</a>

36.一个站点不同页面间播放同一音频文件

大家有这样的经验,当你访问一个站点首页时,会听到该页设置的背景声音文件,比如一段音乐。当你链接到该站点另一页时,音乐就停止了

。如何让声音不断呢。其实,你只需要建立一个上下框架结构的网页,把声音文件建立在下框架里,并把下框架的宽度设置为一个像素,而上

框架里是页面内容,当访问者离开站点首页时,因下框架内容未变,所以,声音不会间断。大家还要注意两点,第一,把框架的边框设置为0;

第二,隐藏声音文件的播放界面,然后把上下两个框架的背景设置为相同。

38.定制新窗口

我们可以打开一个新的窗口来显示链接的内容,但如何定制这个新窗口呢。只需要在标签<A>中加入onClick事件:

<a href="#" onClick="window.open('cnshell.htm','help','scrollbars=yes,resizable=yes,width=500,height=40')">问答</a>"#"表示单

击链接"问答"后,当前窗口保持不变,cnshell.htm为单击链接"问答"后所打开新窗口装载的内容,width:宽,height:高,resizable:是否允许

访客缩放新窗口,scrollbars:如果文本超过一屏,是否生成滚动条,status:是否显示状态栏,menubar:是否显示菜单,location:是否显示地址栏.

40. 删除图片链接的蓝色边框

如果我们设置了图片为一个链接,会发现图片四周出现了蓝色边框。要删除边框,需要在图片标签里加上border="0"。如:<img

src="dog.jpg" border="0">

47. 尽量用table标签,这样可以避免<td>之间的干扰;<table>尽量设为<table width="100%" border="0" cellpadding="0"

ellspacing="0">,一方面是不显示表格线,另一方面占满整个宽度,不会因为内容不够而宽度变窄;包含<table>的 <td>要设为<td

valign="top">,不然内部table默认居中。<table>中第一行表格的width控制各列宽度;每列第一个格的height控制各行高度。

48.$("name")同document.getElementById("name"),是一种简化写法。(可能新版本js可用,老版本不行,我项目中试过一次,不行)

49.js读java变量:

<%

String s = "welcome";

%>

<script language="javascript">

//alert(<%=s%>);报错

alert('<%=s%>');//正确

//如果不加单引号说明是变量,加上单引号才是字符串

</script>

50、js显示下拉框默认值

<select name="max">

<option value="1">第一名</option>

<option value="2">第二名</option>

<option value="3">第三名</option>

</select>

<script>document.all("max").value="3"</script>

51. 表示一个空格,这个空格占一个字符(对于字母)还是两个字符(对于汉字)是根据浏览器的(工具->Internet选项->语言)来决定

的,是不确定的,所以中文开头只需要两个 而不是四个 。

52.在线播放:

下面两个视频,前一个是RM视频(.rm .rmvb),后一个是MP视频(.wmv .asf .avi),为了不影响大家,都设置为手动播放,并将相关的代码

及说明放在了视频的下面:

RM源代码:

<OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=352 height=288>

<PARAM NAME=SRC VALUE="http://www.cqie.cn/pub/iec.rm">

<PARAM NAME=CONSOLE VALUE="http://www.cqie.cn/pub/iec.rm">

<PARAM NAME=CONTROLS VALUE=imagewindow>

<PARAM NAME=AUTOSTART VALUE=0 >

</OBJECT>

<br>

<OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id="video" width=352>

<PARAM NAME=SRC VALUE="http://www.cqie.cn/pub/iec.rm">

<PARAM NAME=AUTOSTART VALUE=0>

<PARAM NAME=CONTROLS VALUE=controlpanel>

<PARAM NAME=CONSOLE VALUE="http://www.cqie.cn/pub/iec.rm">

</OBJECT>

说明:以后可以直接把以上代码放到网页中使用,需要修改的属性说明如下width=352 height=288 这是控制媒体高度和宽度的

VALUE="http://www.cqie.cn/pub/iec.rm" 这是指定媒体文件URL地址的,如果安装了REALSERVER的话,可以用

rtsp://www.cqie.cn/pub/iec.rm来进行流式播放,看起来会更流畅,而且可拖动。AUTOSTART VALUE=0 这是控制是否自动播放的,你只要将

value=1就可以自动播放了

MP源代码:

<object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=160 height=168 >

<PARAM NAME=AUTOSTART VALUE=0 >

<param name=ShowStatusBar value=-1>

<param name=Filename value=http://xiaoping.cqie.cn/wmv/jler.wmv>

<embed type=application/x-oleobject

codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp

src="http://xiaoping.cqie.cn/wmv/jler.wmv" width=160 height=168>

</embed>

</object>

53.树状显示js代码

(要求:某行文本前面有一个加号的标签,一点击加号变成减号,同时该行展开它之下所属信息,以缩进形式呈现,再点击减号又变回加号、

下面展开的文本收回,这应该怎么做?除了js方式有什么其他方式实现么?谢谢!)

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>无标题文档</title>

<script language="javascript">

function showLay(divId){

        var objDiv = eval(divId);

        if (objDiv.style.display=="none"){

                eval("sp"+divId+".innerHTML='-'");

                objDiv.style.display="";

        }else{

                eval("sp"+divId+".innerHTML='+'");

                objDiv.style.display="none";

        }}

</script>

</head>

<body>

<a href="#" onclick="showLay('Layer1')"><span id="spLayer1">+</span>a</a><br>

<div id="Layer1" style="display:none;">

|-<a href="insert_unit_info.html" target="body">a1</a><br>

|-<a href="select_unit_info.jsp" target="body">a2</a><br>

</div>

<a href="#" onclick="showLay('Layer2')"><span id="spLayer2">+</span>b</a><BR>

<div id="Layer2" style="display:none;">

|-<a href="insert_item_info.html" target="body">b1</a><br>

|-<a href="select_item_info.jsp" target="body">b2</a><br>

</div>

<a href="#" onclick="showLay('Layer3')"><span id="spLayer3">+</span>c</a><BR>

<div id="Layer3" style="display:none;">

|-<a href="insert_expert_info.html" target="body">c1</a><br>

|-<a href="select_expert_info.jsp" target="body">c2</a><br>

</div>

<a href="#" onclick="showLay('Layer4')"><span id="spLayer4">+</span>d</a><BR>

<div id="Layer4" style="display:none;">

|-d1<br>

|-d2<br>

</div>

</body>

</html>

54.下拉菜单(新建个.html文件,把代码考进去就行)

<html>

<head>

<title>打造下拉菜单</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<script language="javascript">

function MM_reloadPage(init) { //reloads the window if Nav4 resized

if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {

    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

}

MM_reloadPage(true);

function MM_findObj(n, d) { //v4.0

var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

if(!(x=d
)&&d.all) x=d.all
; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i]
;

for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

if(!x && document.getElementById) x=document.getElementById(n); return x;

}

function MM_showHideLayers() { //v3.0

var i,p,v,obj,args=MM_showHideLayers.arguments;

for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];

    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }

    obj.visibility=v; }

}

</script>

</head>

<body bgcolor="#CCCCCC" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" scroll=auto>

<div id="title" style="position:absolute; left:8px; top:15px; width:240px; height:15px; z-index:1; background-color: #006699;

layer-background-color: #006699; border: 1px none #000000">

<table width="480" cellspacing="0" cellpadding="2">

    <tr>

      <td width="120" onMouseOver="MM_showHideLayers('menu1','','show')" onMouseOut="MM_showHideLayers

('menu1','','hide')"><b><font color="#FFFFFF"><a href="#">■

        经典论坛</a></font></b> </td>

    </tr>

</table>

</div>

<div id="menu1" style="position:absolute; left:8px; top:34px; width:120px; height:80px; z-index:2; background-color: #999966;

layer-background-color: #999966; border: 1px none #000000; visibility: hidden" onMouseOver="MM_showHideLayers

('menu1','','show')" onMouseOut="MM_showHideLayers('menu1','','hide')">

<table width="100%" cellspacing="0" cellpadding="2" height="80">

    <tr>

      <td> <a href="#">Dreamweaver 专栏</a></td>

    </tr>

    <tr>

      <td> <a href="#">Fireworks 专栏</a></td>

    </tr>

    <tr>

      <td> <a href="#">Flash 基本操作</a></td>

    </tr>

    <tr>

      <td> <a href="#">Flash 5 Action</a></td>

    </tr>

</table>

</div>

</body>

</html>

55.防止下载网页信息(例如显示受控文件)的简单方法:

a。屏蔽鼠标左右键,<body oncontextmenu=self.event.returnValue=false onselectstart="return false">

b。加密网页源文件,推荐Batch Html Encryptor加密软件。

c.用Adobe Acrobat 6.0 Standard软件加密。

56.用javascript设置输入框焦点

<html>

<head>

<script language="javascript">

function t() {

document.getElementById('aa').focus(); 

}                           <!--设置id为aa的元素得到焦点-->

</script>

</head>

<body onload="javascript:t()">

<input type="text" id="aa"> <!--设置文本输入框的id为aa-->

</body>

</html>

57.select标签下的OPTION标签没有value属性时,把内容当属性传过去,比如<OPTION>所有用户</OPTION>传的值就是所有用户,建议用以下方

法。

<select name="account.accountId" >

    <OPTION value="">所有日志</OPTION>

    <OPTION value="renyang">任杨</OPTION>

</select>

58.不保留缓存方法:

<%

response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "no-cache");

response.setHeader("Cache-Control", "must-revalidate");

response.setDateHeader("Expires",0);

%>

59.全选、全不选js方法 (直接放在.htm文件中即可)

<SCRIPT language="javascript">

function checkAll(e, itemName)

{

var aa = document.getElementsByName(itemName);

for (var i=0; i<aa.length; i++)

   aa[i].checked = e.checked;

}

function check(e, allName)

{

var all = document.getElementsByName(allName)[0];

if(!e.checked) all.checked = false;

else

{

    var aa = document.getElementsByName(e.name);

    for (var i=0; i<aa.length; i++)

     if(!aa[i].checked) return;

    all.checked = true;

}

}

</SCRIPT>

<input type=checkbox name=allPersons id=allPersons onclick="checkAll(this, 'persons')"> <label for="allPersons">全选

</label><br>

<input type="checkbox" name="persons" id=persons value="1"> <label for="persons">第一名</label><br>

<input type="checkbox" name="persons" id=persons value="2"> <label for="persons">第二名</label><br>

<!-- 问题:第一名和第二名这两个字ID不能一样,否则点第二名这三个字时第一名前的框变化 -->

来自: http://hi.baidu.com/%B5%DA%C6%DF%B9%FA%B6%C8/blog/item/5539cb4443871249510ffeeb.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息