JavaScript基础知识
1 创建脚本块
1: <script language=”JavaScript”>
2: JavaScript code goes here
3: </script>
2 隐藏脚本代码
1: <script language=”JavaScript”>
2: <!--
3: document.write(“Hello”);
4: // -->
5: </script>
在不支持JavaScript的浏览器中将不执行相关代码
3 浏览器不支持的时候显示
1: <noscript>
2: Hello to the non-JavaScript browser.
3: </noscript>
4 链接外部脚本文件
1: <script language=”JavaScript” src="/”filename.js"”></script>
5 注释脚本
1: // This is a comment
2: document.write(“Hello”); // This is a comment
3: /*
4: All of this
5: is a comment
6: */
6 输出到浏览器
1: document.write(“<strong>Hello</strong>”);
7 定义变量
1: var myVariable = “some value”;
8 字符串相加
1: var myString = “String1” + “String2”;
9 字符串搜索
1: <script language=”JavaScript”>
2: <!--
3: var myVariable = “Hello there”;
4: var therePlace = myVariable.search(“there”);
5: document.write(therePlace);
6: // -->
7: </script>
search 方法指明是否存在相应的匹配。如果找到一个匹配,search 方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回 -1。
10 字符串替换
1: thisVar.replace(“Monday”,”Friday”);
11 格式化字串
<script type="text/javascript">
var myVariable = "Hello there";
document.write(myVariable.big() + "<br/>");
document.write(myVariable.blink() +"<br/>");
document.write(myVariable.bold() + "<br/>");
document.write(myVariable.fixed() + "<br/>");
document.write(myVariable.fontcolor("red") + "<br/>");
document.write(myVariable.fontsize("18pt") + "<br/>");
document.write(myVariable.italics() + "<br/>");
document.write(myVariable.small() + "<br/>");
document.write(myVariable.strike() + "<br/>");
document.write(myVariable.sub() + "<br/>");
document.write(myVariable.sup() + "<br/>");
document.write(myVariable.toLowerCase() +"<br/>");
document.write(myVariable.toUpperCase() + "<br/>");
var firstString = "My String";
var finalString = firstString.bold().toLowerCase().fontcolor("red");
</script>
:<b>黑体,<i>斜体,<u>下划线,<tt>打字机体。
12 创建数组
1: <script language=”JavaScript”>
2: <!--
3: var myArray = new Array(5);
4: myArray[0] = “First Entry”;
5: myArray[1] = “Second Entry”;
6: myArray[2] = “Third Entry”;
7: myArray[3] = “Fourth Entry”;
8: myArray[4] = “Fifth Entry”;
9: var anotherArray = new Array(“First Entry”,”Second Entry”,”Third Entry”,”Fourth Entry”,”Fifth Entry”);
10: // -->
11: </script>
<script type="text/javascript">
var myArray = new Array(5);
myArray[0] = "First Entry";
myArray[1] = "Second Entry";
myArray[2] = "Third Entry";
myArray[3] = "Fourth Entry";
myArray[4] = "Fifth Entry";
var arr,str="";
for( arr in myArray ){
str += arr+":"+myArray[arr]+"\n";
}
alert(str.length);
</script>
13 数组排序
(对象数组)
<script type="text/javascript">
var myArray = new Array(5);
myArray[0] = "z";
myArray[1] = "c";
myArray[2] = "d";
myArray[3] = "a";
myArray[4] = "q";
document.write(myArray.sort());
</script>
14 分割字符串
<script type="text/javascript">
var myVariable = 'a,b,c,d';
var stringsplit=myVariable.split(',');
for(i=0;i<stringsplit.length;i++){
document.write(stringsplit[i]+'<br>');
}
</script>
split 方法的结果是一个字符串数组
15 弹出警告信息
<script type="text/javascript">
window.alert("hello");
</script>
16 弹出确认框
<script type="text/javascript">
var truthBeTold = window.confirm("单击“确定”继续。单击“取消”停止。");
if (truthBeTold) {
window.alert("欢迎访问我们的 Web 页!");
} else window.alert("再见啦!");
</script>
提示消息框
<script type="text/javascript">
var theResponse = window.prompt("欢迎?","请在此输入您的姓名。");
document.write(theResponse);
</script>
17 定义函数
<script type="text/javascript">
function multiple(number1,number2) {
var result = number1 * number2;
return result;
}
</script>
18 调用JS函数
1: <a href=”#” onClick=”functionName()”>Link text</a>
2: <a href="/”javascript:functionName"()”>Link text</a>
19 在页面加载完成后执行函数
<body onLoad='functionName();'>
Body of the page
</body>
20 条件判断
<script type="text/javascript">
var userChoice = window.confirm("Choose OK or Cancel");
var result = (userChoice == true) ? "OK" : "Cancel";
document.write(result);
</script>
21 指定次数循环
1: <script>
2: <!--
3: var myArray = new Array(3);
4: myArray[0] = “Item 0”;
5: myArray[1] = “Item 1”;
6: myArray[2] = “Item 2”;
7: for (i = 0; i < myArray.length; i++) {
8: document.write(myArray[i] + “<br/>”);
9: }
10: // -->
11: </script>
22 设定将来执行
<script type="text/javascript">
Function hello () {
window.alert ("Hello");
}
window.setTimeout ("hello ()", 5000);
</script>
23 定时执行函数
<script type="text/javascript">
function hello() {
window.alert('Hello');
window.setTimeout('hello()',5000);
}
window.setTimeout('hello()',5000);
</script>
24 取消定时执行
<script type="text/javascript">
function hello() {
window.alert('Hello');
}
var myTimeout = window.setTimeout('hello()',5000);
window.clearTimeout(myTimeout);
</script>
25 在页面卸载时候执行函数
<body onUnload='functionName();'>
Body of the page
</body>
JavaScript就这么回事2:浏览器输出
26 访问document对象
<script type="text/javascript">
var myURL = document.URL;
window.alert(myURL);
</script>
27 动态输出HTML
<script type="text/javascript">
document.write ('<p>Here’s some information about this document:</p>');
document.write ('<ul>');
document.write('<li>Referring Document: '+ document.referrer + '</li>');
document.write('<li>Domain: ' + document.domain + '</li>');
document.write('<li>URL: ' + document.URL + '</li>');
document.write('</ul>');
</script>
28 输出换行
document.writeln('<strong>a</strong>');
document.writeln('b');
29 输出日期
<script type="text/javascript">
var thisDate = new Date();
document.write(thisDate.toString()+"<br>");
document.write(thisDate);
</script>
30 指定日期的时区
<script type="text/javascript">
var myOffset = -2;
var currentDate = new Date();
var userOffset = currentDate.getTimezoneOffset()/60;
var timeZoneDifference = userOffset - myOffset;
currentDate.setHours(currentDate.getHours() + timeZoneDifference);
document.write("The time and date in Central Europe is: " + currentDate.toLocaleString());
</script>
31 设置日期输出格式
<script type="text/javascript">
var thisDate = new Date();
var thisTimeString = thisDate.getHours() +":"+thisDate.getMinutes();
var thisDateString = thisDate.getYear() + "/" + thisDate.getMonth() + "/" + thisDate.getDate();
document.write(thisTimeString + "\t on " + thisDateString);
</script>
<!--
getFullYear 方法以绝对数字的形式返回年份值。
例如,1976 年的返回值就是 1976。这样可以避免出现 2000 年问题,
从而不会将 2000 年1月1日以后的日期与 1900 年1月1日以后的日期混淆起来。
-->32 读取URL参数
<script type="text/javascript">
var urlParts = document.URL.split("?");
var parameterParts = urlParts[0].split("&");
//window.alert(parameterParts);
for (i = 0; i < parameterParts.length; i++) {
var pairParts = parameterParts[i].split("+");
var pairName = pairParts[0];
var pairValue = pairParts[1];
document.write(pairName + ":" +pairValue );
}
</script>
你还以为HTML是无状态的么?
33 打开一个新的document对象
<html>
<head>
<script type="text/javascript">
document.write("TestDemo");
function writeDocBack() {
var oNewDoc = document.open("text/html","replace");
var sMarkup = "<HTML><HEAD><TITLE>New Document</TITLE></HEAD>";
sMarkup += "<BODY>Hello, world!</BODY></HTML>";
oNewDoc.write(sMarkup);
oNewDoc.close();
}
</script>
</head>
<body >
<form><input onClick=writeDocBack() type=button value="Write Document" name="button2">
</form>
</body>
</html>
34 页面跳转
<script type="text/javascript">
window.location.href ="http://www.baidu.com";
</script>
<script type="text/javascript">
window.location.href ="/TestDemo/page/MyHtml.html";
</script>
35 添加网页加载进度窗口
open方法,打开一个新的窗口。在open方法的参数列表中指定要装载的URL资源、窗口的名称、窗口的主要特性。
在某个网页文件打开的同时,自动打开一个新的用于发布通知的窗口,新的通知的窗口在一个指定的时间后又自动关闭。
首先编写一个test.jsp网页文件,文件内容如下:
<script type="text/javascript">
Var placeHolder =window.open('MyHtml.html','123','width=200,height=200');
</script>
接着编写一个'MyHtml.html网页文件,文件内容如下:
<body>
<script type="text/javascript">
window.setTimeout('window.close()',5000)
</script>
<center><h1>通知</h1></center>
5秒以后,此网页将要自动关闭!!
</body>
1: <html>
2: <head>
3: <script language='javaScript'>
4: var placeHolder = window.open('holder.html','placeholder','width=200,height=200');
5: </script>
6: <title>The Main Page</title>
7: </head>
8: <body onLoad='placeHolder.close()'>
placeHolder.close();运行新的程序,弹出窗口刚打开,马上就会被关闭
9: <p>This is the main page</p>
10: </body>
11: </html>
JavaScript就这么回事3:图像
36 读取图像属性
<img src="/TestDemo/image/a28342_lc1.jpg" name='myImage'>
<a href='/TestDemo/page/MyHtml.html' onclick="window.alert(document.myImage.width)">Width</a>
37 动态加载图像
Image()对象
预加载图像最简单的方法用javascript将一个新的Image()对象实例化,并把你想要预加载的图像的URL传递给它。假设我们有一个叫做 a28342_lc1.jpg 的图像,我们希望,当用户把鼠标放在一个已经显示过的图像上的时,系统能够显示出这个图像。为了预加载这个图像,以便实现更快的响应时间,我们只用创建一个新的Image()对象,将其命名为heavyImage,并使用onLoad()事件处理程序把它同时加载到页面上。
<html>
<head>
<script type="text/javascript">
function preloader() {
heavyImage = new Image();
heavyImage.src = "/TestDemo/image/a28342_lc1.jpg";
}
</script>
</head>
<body onLoad="javascript:preloader()">把图象同时加载到页面上
<a href='/TestDemo/page/MyHtml.html' onMouseOver="javascript:document.img01.src='/TestDemo/image/a28342_lc1.jpg'">
<img name="img01" src="/TestDemo/image/S3010043.JPG"></a>
</body>
</html>
要注意的是,图像标记自身并不会处理onMouseOver()和onMouseOut()事件,这就是为什么上面例子里的<img>标记被放在一个<a>标记里,后者的确加入了对这些事件类型的支持。
用数组加载多个图像
38 简单的图像替换
<script type="text/javascript">
rollImage = new Image;
rollImage.src = "/ImageDynamic2/image/F-15I.jpg";
defaultImage = new Image;
defaultImage.src = "/ImageDynamic2/image/F-16D.jpg";
</script>
</head>
<body>
<a href="/myUrl" onMouseOver='document.myImage.src = rollImage.src;'onMouseOut='document.myImage.src = defaultImage.src;'>
<img src="/ImageDynamic2/image/F-16D.jpg" name='myImage' width=100 height=100 border=1>
</body>
ImageDynamic2
39 随机显示图像
<script type="text/javascript">
var imageList = new Array;
imageList[0]="/Random-39/image/F-15I.jpg"
imageList[1]="/Random-39/image/F-16D.jpg"
imageList[2]="/Random-39/image/F-18F.jpg"
imageList[3]="/Random-39/image/F-35.jpg"
var imageChoice = Math.floor(Math.random() * imageList.length);
document.write('<img src="' + imageList[imageChoice] + '">');
</script>
40 函数实现的图像替换
<script type="text/javascript">
var source = 0;
var replacement = 1;
function createRollOver(originalImage,replacementImage){
var imageArray = new Array;
imageArray[source] = new Image;
imageArray[source].src = originalImage;
imageArray[replacement] = new Image;
imageArray[replacement].src = replacementImage;
return imageArray;
}
var rollImage1 = createRollOver("/function-40/image/2.jpg","/function-40/image/3.jpg");
</script>
</head>
<body>
<a href='#' onMouseOver='document.myImage1.src = rollImage1[replacement].src;'onMouseOut='document.myImage1.src = rollImage1[source].src;'>
<img src="/function-40/image/4.jpg" width=200 height=200 name='myImage1' border=0></a>
41 创建幻灯片
<script type="text/javascript">
var imageList = new Array;
imageList[0] = new Image;
imageList[0].src = "/PowerPoint-41/image/1.jpg";
imageList[1] = new Image;
imageList[1].src = "/PowerPoint-41/image/2.jpg";
imageList[2] = new Image;
imageList[2].src = "/PowerPoint-41/image/3.jpg";
imageList[3] = new Image;
imageList[3].src = "/PowerPoint-41/image/4.jpg";
function slideShow(imageNumber) {
document.slideShow.src = imageList[imageNumber].src;
imageNumber += 1;
if (imageNumber < imageList.length) {
window.setTimeout("slideShow(" + imageNumber + ")",3000);
}
}
</script>
</head>
<body onLoad='slideShow(0)'>
<img src="/PowerPoint-41/image/1.jpg" width=100 name='slideShow'>
42 随机广告图片
1: <script language=”JavaScript”>
2: var imageList = new Array;
3: imageList[0] = “image1.jpg”;
4: imageList[1] = “image2.jpg”;
5: imageList[2] = “image3.jpg”;
6: imageList[3] = “image4.jpg”;
7: var urlList = new Array;
8: urlList[0] = “http://some.host/”;
9: urlList[1] = “http://another.host/”;
10: urlList[2] = “http://somewhere.else/”;
11: urlList[3] = “http://right.here/”;
12: var imageChoice = Math.floor(Math.random() * imageList.length);
13: document.write(‘<a href=”’ + urlList[imageChoice] + ‘“><img src=”’ + imageList[imageChoice] + ‘“></a>’);
14: </script>
JavaScript就这么回事4:表单
还是先继续写完JS就这么回事系列吧~
43 表单构成
1: <form method=”post” action=”target.html” name=”thisForm”>
2: <input type=”text” name=”myText”>
3: <select name=”mySelect”>
4: <option value=”1”>First Choice</option>
5: <option value=”2”>Second Choice</option>
6: </select>
7: <br/>
8: <input type=”submit” value=”Submit Me”>
9: </form>
44 访问表单中的文本框内容
1: <form name=”myForm”>
2: <input type=”text” name=”myText”>
3: </form>
4: <a href='#' onClick='window.alert(document.myForm.myText.value);'>Check Text Field</a>
45 动态复制文本框内容
1: <form name=”myForm”>
2: Enter some Text: <input type=”text” name=”myText”><br/>
3: Copy Text: <input type=”text” name=”copyText”>
4: </form>
5: <a href=”#” onClick=”document.myForm.copyText.value =
6: document.myForm.myText.value;”>Copy Text Field</a>
46 侦测文本框的变化
1: <form name=”myForm”>
2: Enter some Text: <input type=”text” name=”myText” onChange=”alert(this.value);”>
3: </form>
47 访问选中的Select
1: <form name=”myForm”>
2: <select name=”mySelect”>
3: <option value=”First Choice”>1</option>
4: <option value=”Second Choice”>2</option>
5: <option value=”Third Choice”>3</option>
6: </select>
7: </form>
8: <a href='#' onClick='alert(document.myForm.mySelect.value);'>Check Selection List</a>
48 动态增加Select项
1: <form name=”myForm”>
2: <select name=”mySelect”>
3: <option value=”First Choice”>1</option>
4: <option value=”Second Choice”>2</option>
5: </select>
6: </form>
7: <script language=”JavaScript”>
8: document.myForm.mySelect.length++;
9: document.myForm.mySelect.options[document.myForm.mySelect.length - 1].text = “3”;
10: document.myForm.mySelect.options[document.myForm.mySelect.length - 1].value = “Third Choice”;
11: </script>
49 验证表单字段
1: <script language=”JavaScript”>
2: function checkField(field) {
3: if (field.value == “”) {
4: window.alert(“You must enter a value in the field”);
5: field.focus();
6: }
7: }
8: </script>
9: <form name=”myForm” action=”target.html”>
10: Text Field: <input type=”text” name=”myField”onBlur=”checkField(this)”>
11: <br/><input type=”submit”>
12: </form>
50 验证Select项
1: function checkList(selection) {
2: if (selection.length == 0) {
3: window.alert(“You must make a selection from the list.”);
4: return false;
5: }
6: return true;
7: }
51 动态改变表单的action
1: <form name=”myForm” action=”login.html”>
2: Username: <input type=”text” name=”username”><br/>
3: Password: <input type=”password” name=”password”><br/>
4: <input type=”button” value=”Login” onClick=”this.form.submit();”>
5: <input type=”button” value=”Register” onClick=”this.form.action = ‘register.html’; this.form.submit();”>
6: <input type=”button” value=”Retrieve Password” onClick=”this.form.action = ‘password.html’; this.form.submit();”>
7: </form>
52 使用图像按钮
1: <form name=”myForm” action=”login.html”>
2: Username: <input type=”text” name=”username”><br/>
3: Password: <input type=”password”name=”password”><br/>
4: <input type=”image” src="/”login.gif"” value=”Login”>
5: </form>
6:
53 表单数据的加密
1: <SCRIPT LANGUAGE='JavaScript'>
2: <!--
3: function encrypt(item) {
4: var newItem = '';
5: for (i=0; i < item.length; i++) {
6: newItem += item.charCodeAt(i) + '.';
7: }
8: return newItem;
9: }
10: function encryptForm(myForm) {
11: for (i=0; i < myForm.elements.length; i++) {
12: myForm.elements[i].value = encrypt(myForm.elements[i].value);
13: }
14: }
15:
16: //-->
17: </SCRIPT>
18: <form name='myForm' onSubmit='encryptForm(this); window.alert(this.myField.value);'>
19: Enter Some Text: <input type=text name=myField><input type=submit>
20: </form>
JavaScript就这么回事5:窗口和框架
54 改变浏览器状态栏文字提示
1: <script language=”JavaScript”>
2: window.status = “A new status message”;
3: </script>
55 弹出确认提示框
1: <script language=”JavaScript”>
2: var userChoice = window.confirm(“Click OK or Cancel”);
3: if (userChoice) {
4: document.write(“You chose OK”);
5: } else {
6: document.write(“You chose Cancel”);
7: }
8: </script>
56 提示输入
1: <script language=”JavaScript”>
2: var userName = window.prompt(“Please Enter Your Name”,”Enter Your Name Here”);
3: document.write(“Your Name is “ + userName);
4: </script>
57 打开一个新窗口
1: //打开一个名称为myNewWindow的浏览器新窗口
2: <script language=”JavaScript”>
3: window.open(“http://www.liu21st.com/”,”myNewWindow”);
4: </script>
58 设置新窗口的大小
1: <script language=”JavaScript”>
2: window.open(“http://www.liu21st.com/”,”myNewWindow”,'height=300,width=300');
3: </script>
59 设置新窗口的位置
1: <script language=”JavaScript”>
2: window.open(“http://www.liu21st.com/”,”myNewWindow”,'height=300,width=300,left=200,screenX=200,top=100,screenY=100');
3: </script>
60 是否显示工具栏和滚动栏
1: <script language=”JavaScript”>
2: window.open(“http:
61 是否可以缩放新窗口的大小
1: <script language=”JavaScript”>
2: window.open('http://www.liu21st.com/' , 'myNewWindow', 'resizable=yes' );</script>
62 加载一个新的文档到当前窗口
1: <a href='#' onClick='document.location = '125a.html';' >Open New Document</a>
63 设置页面的滚动位置
1: <script language=”JavaScript”>
2: if (document.all) { //如果是IE浏览器则使用scrollTop属性
3: document.body.scrollTop = 200;
4: } else { //如果是NetScape浏览器则使用pageYOffset属性
5: window.pageYOffset = 200;
6: }</script>
64 在IE中打开全屏窗口
1: <a href='#' onClick=”window.open('http://www.juxta.com/','newWindow','fullScreen=yes');”>Open a full-screen window</a>
65 新窗口和父窗口的操作
1: <script language=”JavaScript”>
2: //定义新窗口
3: var newWindow = window.open(“128a.html”,”newWindow”);
4: newWindow.close(); //在父窗口中关闭打开的新窗口
5: </script>
6: 在新窗口中关闭父窗口
7: window.opener.close()
66 往新窗口中写内容
1: <script language=”JavaScript”>
2: var newWindow = window.open(“”,”newWindow”);
3: newWindow.document.open();
4: newWindow.document.write(“This is a new window”);
5: newWIndow.document.close();
6: </script>
67 加载页面到框架页面
1: <frameset cols=”50%,*”>
2: <frame name=”frame1” src="/”135a.html"”>
3: <frame name=”frame2” src="/”about:blank"”>
4: </frameset>
5: 在frame1中加载frame2中的页面
6: parent.frame2.document.location = “135b.html”;
68 在框架页面之间共享脚本
如果在frame1中html文件中有个脚本
1: function doAlert() {
2: window.alert(“Frame 1 is loaded”);
3: }
那么在frame2中可以如此调用该方法
1: <body onLoad=”parent.frame1.doAlert();”>
2: This is frame 2.
3: </body>
69 数据公用
可以在框架页面定义数据项,使得该数据可以被多个框架中的页面公用
1: <script language=”JavaScript”>
2: var persistentVariable = “This is a persistent value”;
3: </script>
4: <frameset cols=”50%,*”>
5: <frame name=”frame1” src="/”138a.html"”>
6: <frame name=”frame2” src="/”138b.html"”>
7: </frameset>
这样在frame1和frame2中都可以使用变量persistentVariable
70 框架代码库
根据以上的一些思路,我们可以使用一个隐藏的框架页面来作为整个框架集的代码库
1: <frameset cols=”0,50%,*”>
2: <frame name=”codeFrame” src="/”140code.html"”>
3: <frame name=”frame1” src="/”140a.html"”>
4: <frame name=”frame2” src="/”140b.html"”>
5: </frameset>
71、预缓存图象(page142)
<script type="text/javascript">
//初始化空数组
var imageLibrary = new Array();
//预缓存4个图象
imageLibrary['image1']=new Image(120,90);
imageLibrary['image1'].src="/TestDemo/image/S3010043.JPG";
imageLibrary['image2']=new Image(120,90);
imageLibrary['image2'].src="/TestDemo/image/a28342_lc1.jpg";
imageLibrary['image3']=new Image(120,90);
imageLibrary['image3'].src="/TestDemo/image/35.jpg";
imageLibrary['image4']=new Image(120,90);
imageLibrary['image4'].src="/TestDemo/image/S3010081.JPG";
function loadCached(list){
var img=list.options[list.selectedIndex].value;//value就是option的值
//document.write("img="+img);
//document.write(list.selectedIndex);
document.img01.src=imageLibrary[img].src;
}
//select的属性 select.selectedIndex 注意大写 ,这个属性表示当前所选择的option的索引,
//option的索引都是从零开始的
</script>
</head>
<body>
<h2>image图象</h2>
<img name="img01" src="/TestDemo/image/S3010043.JPG"></a>
<form action="">
<select name="" onchange="loadCached(this)">
<option value="image1">带
<option value="image2">回形针
<option value="image3">灯
<option value="image4">橡皮
</select>
</form>
</body>
javascript中超连接的两种方法。
<script language="JavaScript" type="text/JavaScript">
//方法一:
location.href='网址';
//方法二:
document.write('<a href="网址">文字</a>');
</script>