JavaScript方法和技巧大全

  • 来源: 互联网 作者: rocket   2008-03-20/13:21
  • 这篇介绍JavaScript方面的日志,我在是Clang上看到的。作者介绍挺全面的,所以转载过来让感兴趣的朋友看一下。呵呵~~~

    有些时候你精通一门语言,但是会发现你其实整天在和其它语言打交道,也许你以为这些微不足道,不至于影响你的开发进度,但恰恰是这些你不重视的东西会浪费你很多时间,我一直以为我早在几年前就已经精通JavaScript了,直到目前,我才越来越觉得JavaScript远比我想象的复杂和强大,我开始崇拜它,就像崇拜所有OOP语言一样~
    趁着节日的空隙,把有关JavaScript的方法和技巧整理下,让每个在为JavaScript而烦恼的人明白,JavaScript就这么回事!并希望JavaScript还可以成为你的朋友,让你豁然开朗,在项目中更好的应用~

    适合阅读范围:对JavaScript一无所知~离精通只差一步之遥的人
    基础知识:HTML


    JavaScript就这么回事1:基础知识

    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>

     

    10 字符串替换

    1: thisVar.replace(“Monday”,”Friday”);


    11 格式化字串

    1: <script language=”JavaScript”>
    2: <!--
    3: var myVariable = “Hello there”;
    4: document.write(myVariable.big() + “<br>”);
    5: document.write(myVariable.blink() + “<br>”);
    6: document.write(myVariable.bold() + “<br>”);
    7: document.write(myVariable.fixed() + “<br>”);
    8: document.write(myVariable.fontcolor(“red”) + “<br>”);
    9: document.write(myVariable.fontsize(“18pt”) + “<br>”);
    10: document.write(myVariable.italics() + “<br>”);
    11: document.write(myVariable.small() + “<br>”);
    12: document.write(myVariable.strike() + “<br>”);
    13: document.write(myVariable.sub() + “<br>”);
    14: document.write(myVariable.sup() + “<br>”);
    15: document.write(myVariable.toLowerCase() + “<br>”);
    16: document.write(myVariable.toUpperCase() + “<br>”);
    17:
    18: var firstString = “My String”;
    19: var finalString = firstString.bold().toLowerCase().fontcolor(“red”);
    20: // -->
    21: </script>

     

    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>

     

    13 数组排序

    1: <script language=”JavaScript”>
    2: <!--
    3: var myArray = new Array(5);
    4: myArray[0] = “z”;
    5: myArray[1] = “c”;
    6: myArray[2] = “d”;
    7: myArray[3] = “a”;
    8: myArray[4] = “q”;
    9: document.write(myArray.sort());
    10: // -->
    11: </script>

     

    14 分割字符串

    1: <script language=”JavaScript”>
    2: <!--
    3: var myVariable = “a,b,c,d”;
    4: var stringArray = myVariable.split(“,”);
    5: document.write(stringArray[0]);
    6: document.write(stringArray[1]);
    7: document.write(stringArray[2]);
    8: document.write(stringArray[3]);
    9: // -->
    10: </script>

     

    15 弹出警告信息

    1: <script language=”JavaScript”>
    2: <!--
    3: window.alert(“Hello”);
    4: // -->
    5: </script>

     

    16 弹出确认框

    1: <script language=”JavaScript”>
    2: <!--
    3: var result = window.confirm(“Click OK to continue”);
    4: // -->
    5: </script>

     

    17 定义函数

    1: <script language=”JavaScript”>
    2: <!--
    3: function multiple(number1,number2) {
    4: var result = number1 * number2;
    5: return result;
    6: }
    7: // -->
    8: </script>

     

    18 调用JS函数

    1: <a href=”#” onClick=”functionName()”>Link text</a>
    2: <a href="/”javascript:functionName"()”>Link text</a>

     

    19 在页面加载完成后执行函数

    1: <body onLoad=”functionName();”>
    2: Body of the page
    3: </body>


    20 条件判断

    1: <script>
    2: <!--
    3: var userChoice = window.confirm(“Choose OK or Cancel”);
    4: var result = (userChoice == true) ? “OK” : “Cancel”;
    5: document.write(result);
    6: // -->
    7: </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 设定将来执行

    1: <script>
    2: <!--
    3: function hello() {
    4: window.alert(“Hello”);
    5: }
    6: window.setTimeout(“hello()”,5000);
    7: // -->
    8: </script>

     

    23 定时执行函数

    1: <script>
    2: <!--
    3: function hello() {
    4: window.alert(“Hello”);
    5: window.setTimeout(“hello()”,5000);
    6: }
    7: window.setTimeout(“hello()”,5000);
    8: // -->
    9: </script>

     

    24 取消定时执行

    1: <script>
    2: <!--
    3: function hello() {
    4: window.alert(“Hello”);
    5: }
    6: var myTimeout = window.setTimeout(“hello()”,5000);
    7: window.clearTimeout(myTimeout);
    8: // -->
    9: </script>

     

    25 在页面卸载时候执行函数

    1: <body onUnload=”functionName();”>
    2: Body of the page
    3: </body>

    JavaScript就这么回事2:浏览器输出


    26 访问document对象

    1: <script language=”JavaScript”>
    2: var myURL = document.URL;
    3: window.alert(myURL);
    4: </script>

     

    27 动态输出HTML

    1: <script language=”JavaScript”>
    2: document.write(“<p>Here’s some information about this document:</p>”);
    3: document.write(“<ul>”);
    4: document.write(“<li>Referring Document: “ + document.referrer + “</li>”);
    5: document.write(“<li>Domain: “ + document.domain + “</li>”);
    6: document.write(“<li>URL: “ + document.URL + “</li>”);
    7: document.write(“</ul>”);
    8: </script>


    28 输出换行

    1: document.writeln(“<strong>a</strong>”);
    2: document.writeln(“b”);

     

    29 输出日期

    1: <script language=”JavaScript”>
    2: var thisDate = new Date();
    3: document.write(thisDate.toString());
    4: </script>

     

    30 指定日期的时区

    1: <script language=”JavaScript”>
    2: var myOffset = -2;
    3: var currentDate = new Date();
    4: var userOffset = currentDate.getTimezoneOffset()/60;
    5: var timeZoneDifference = userOffset - myOffset;
    6: currentDate.setHours(currentDate.getHours() + timeZoneDifference);
    7: document.write(“The time and date in Central Europe is: “ + currentDate.toLocaleString());
    8: </script>


    31 设置日期输出格式

    1: <script language=”JavaScript”>
    2: var thisDate = new Date();
    3: var thisTimeString = thisDate.getHours() + “:” + thisDate.getMinutes();
    4: var thisDateString = thisDate.getFullYear() + “/” + thisDate.getMonth() + “/” + thisDate.getDate();
    5: document.write(thisTimeString + “ on “ + thisDateString);
    6: </script>


    32 读取URL参数

    1: <script language=”JavaScript”>
    2: var urlParts = document.URL.split(“?”);
    3: var parameterParts = urlParts[1].split(“&”);
    4: for (i = 0; i < parameterParts.length; i++) {
    5: var pairParts = parameterParts[i].split(“=”);
    6: var pairName = pairParts[0];
    7: var pairValue = pairParts[1];
    8: document.write(pairName + “ :“ +pairValue );
    9: }
    10: </script>

    你还以为HTML是无状态的么?

    33 打开一个新的document对象

    1: <script language=”JavaScript”>
    2: function newDocument() {
    3: document.open();
    4: document.write(“<p>This is a New Document.</p>”);
    5: document.close();
    6: }
    7: </script>

     

    34 页面跳转

    1: <script language=”JavaScript”>
    2: window.location = “http://www.liu21st.com/”;
    3: </script>

     

    35 添加网页加载进度窗口

    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()'>
    9: <p>This is the main page</p>
    10: </body>
    11: </html>

     

    JavaScript就这么回事3:图像

     

    36 读取图像属性

    1: <img src="/”image1.jpg"” name=”myImage”>
    2: <a href=”# ” onClick=”window.alert(document.myImage.width)”>Width</a>
    3:


    37 动态加载图像

    1: <script language=”JavaScript”>
    2: myImage = new Image;
    3: myImage.src = “Tellers1.jpg”;
    4: </script>


    38 简单的图像替换

    1: <script language=”JavaScript”>
    2: rollImage = new Image;
    3: rollImage.src = “rollImage1.jpg”;
    4: defaultImage = new Image;
    5: defaultImage.src = “image1.jpg”;
    6: </script>
    7: <a href="/”myUrl"” onMouseOver=”document.myImage.src = rollImage.src;”
    8: onMouseOut=”document.myImage.src = defaultImage.src;”>
    9: <img src="/”image1.jpg"” name=”myImage” width=100 height=100 border=0>


    39 随机显示图像

    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 imageChoice = Math.floor(Math.random() * imageList.length);
    8: document.write(‘<img src=”’ + imageList[imageChoice] + ‘“>’);
    9: </script>


    40 函数实现的图像替换

    1: <script language=”JavaScript”>
    2: var source = 0;
    3: var replacement = 1;
    4: function createRollOver(originalImage,replacementImage) {
    5: var imageArray = new Array;
    6: imageArray[source] = new Image;
    7: imageArray[source].src = originalImage;
    8: imageArray[replacement] = new Image;
    9: imageArray[replacement].src = replacementImage;
    10: return imageArray;
    11: }
    12: var rollImage1 = createRollOver(“image1.jpg”,”rollImage1.jpg”);
    13: </script>
    14: <a href=”#” onMouseOver=”document.myImage1.src = rollImage1[replacement].src;”
    15: onMouseOut=”document.myImage1.src = rollImage1[source].src;”>
    16: <img src="/”image1.jpg"” width=100 name=”myImage1” border=0>
    17: </a>


    41 创建幻灯片

    1: <script language=”JavaScript”>
    2: var imageList = new Array;
    3: imageList[0] = new Image;
    4: imageList[0].src = “image1.jpg”;
    5: imageList[1] = new Image;
    6: imageList[1].src = “image2.jpg”;
    7: imageList[2] = new Image;
    8: imageList[2].src = “image3.jpg”;
    9: imageList[3] = new Image;
    10: imageList[3].src = “image4.jpg”;
    11: function slideShow(imageNumber) {
    12: document.slideShow.src = imageList[imageNumber].src;
    13: imageNumber += 1;
    14: if (imageNumber < imageList.length) {
    15: window.setTimeout(“slideShow(“ + imageNumber + “)”,3000);
    16: }
    17: }
    18: </script>
    19: </head>
    20: <body onLoad=”slideShow(0)”>
    21: <img src="/”image1.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>


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多