JavaScript For Beginners(转载)

注:我对原文进行了编辑,对一些词汇标注颜色,方便阅读。本来准备翻译,但是觉得文章简单易懂,而且原文写得很好,所以就不献丑了。希望对JavaScript初学者能有所帮助。你可以跟着作者一起做那些示例代码,等读完文章的时候,你就可以掌握JavaScript的基本操作了,你会发现其实这一切很容易。

Contents
Embedding and including
write and writeln
Document object
Message box
Function
Event handler
Form
Link
Date
Window
Frame

Embedding and including

Let's first see a simple example:

< html >
< head >
< title > This is a JavaScript example </ title >
< script  language ="JavaScript" >
<!--
document.write( " Hello World! " );
// -->
</ script >
</ head >
< body >  Hi, man!  </ body >
</ html >

Usually, JavaScript code starts with the tag <Script language="JavaScript"> and ends with the tag </script>. The code placed between <head> and </head>. Sometimes, people embed the code in the <body> tags:

< html >
< head ></ head >
< body >
< script >
.. //  The code embedded in the <body> tags.
</ script >
</ body >
</ html >

Why do we place JavaScript code inside comment fields <!-- and //--> ?
It's for ensuring that the Script is not displayed by old browsers that do not support JavaScript. This is optional, but considered good practice. The LANGUAGE attribute also is optional, but recommended. You may specify a particular version of JavaScript:

< script  language ="JavaScript1.2" >

You can use another attribute SRC to include an external file containing JavaScript code:

< script  language ="JavaScript"  src ="hello.js" ></ script >

For example, shown below is the code of the external file hello.js :

document.write("Hello World!")

The external file is simply a text file containing JavaScript code with the file name extension ".js".

Note:

  1. Including an external file only functions reliably across platforms n the version 4 browsers.
  2. The code can't include tags <script language...> and </script>, or you will get an error message.


write and writeln


In order to output text in JavaScript you must use write() or writeln(). Here's an example:

< HTML >
< HEAD >
< TITLE >  Welcome to my site </ TITLE ></ HEAD >
< BODY >
< SCRIPT  LANGUAGE ="JAVASCRIPT" >
<!--
document.write( " Welcome to my site! " );
//  -->
</ SCRIPT >
</ BODY >
</ HTML >

Note: the document object write is in lowercase as JavaScript is case sensitive. The difference between write and writeln is: write just outputs a text, writeln outputs the text and a line break.


Document object


The document object is one of the most important objects of JavaScript. Shown below is a very simple JavaScript code:

document.write("Hi there.")

In this code, document is the object. write is the method of this object. Let's have a look at some of the other methods that the document object possesses.

lastModified

You can always include the last update date on your page by using the following code:

< script  language ="JavaScript" >
document.write( " This page created by John N. Last update: "   +  document.lastModified);
</ script >  

All you need to do here is use the lastModified property of the document. Notice that we used + to put together This page created by John N. Last update: and document.write.

bgColor and fgColor

Lets try playing around with bgColor and fgColor:

< script >
document.bgColor = " black "
document.fgColor = " #336699 "
</ script >


Message Box

alert

There are three message boxes: alert, confirm, and prompt. Let's look at the first one:

< body >
< script >
window.alert( " Welcome to my site! " )
</ script >
</ body >

You can put whatever you want inside the quotation marks.

confirm

An example for confirm box:

window.confirm("Are you sure you want to quit?")

prompt

Prompt box is used to allow a user to enter something according the promotion:

window.prompt("please enter user name") 

In all our examples above, we wrote the box methods as window.alert(). Actually, we could simply write the following instead as:

alert()
confirm()
prompt()


Variables and Conditions


Let's see an example:

< script >
var  x = window.confirm( " Are you sure you want to quit " )

if  (x)
    window.alert( " Thank you. " )
else
    window.alert( " Good choice. " )
</ script >

There are several concepts that we should know. First of all, var x = is a variable declaration. If you want to create a variable, you must declare the variable using the var statement. x will get the result, namely, true or false . Then we use a condition statement if else to give the script the ability to choose between two paths, depending on this result (condition for the following action). If the result is true (the user clicked "ok"), "Thank you" appears in the window box. If the result is false (the user clicked "cancel"), "Good choice" appears in the window box instead. So we can make more complex boxes using var, if and those basic methods.

< script >
var  y = window.prompt( " please enter your name " )
window.alert(y)
</ script >

Another example:

< html >< head >
< script >
var  x = confirm( " Are you sure you want to quit? " )
if  ( ! x)
    window.location = " http://www.yahoo.com "
</ script >
</ head >
< body >
Welcome to my website!.
</ body ></ html >

If you click "cancel", it will take you to yahoo, and clicking ok will continue with the loading of the current page "Welcome to my website!". Note: if(!x) means: if click "cancel". In JavaScript, the exclamation mark !means: "none".


Function


Functions are chunks of code.Let's create a simple function:

function test()
{
   document.write("Hello can you see me?")
}

Note that if only this were within your <script> </script> tags, you will not see "Hello can you see me?" on your screen because functions are not executed by themselves until you call upon them. So we should do something:

function test()
{
   document.write("Hello can you see me?")
}
test()

Last line test() calls the function, now you will see the words "Hello can you see me?".


Event handler


What are event handlers? They can be considered as triggers that execute JavaScript when something happens, such as click or move your mouse over a link, submit a form etc.

onClick

onClick handlers execute something only when users click on buttons, links, etc. Let's see an example:

< script >
function  ss()
{
alert( " Thank you! " )
}
</ script >
< form >
< input  type ="button"  value ="Click here"  onclick ="ss()" >
</ form >

The function ss() is invoked when the user clicks the button. Note: Event handlers are not added inside the <script> tags, but rather, inside the html tags.

onLoad

The onload event handler is used to call the execution of JavaScript after loading:

< body  onload ="ss()" >
< frameset  onload ="ss()" >
< img  src ="whatever.gif"  onload ="ss()" >

onMouseover,onMouseout

These handlers are used exclusively with links.

< a  href ="#"  onMouseOver ="document.write('Hi, nice to see you!" > Over Here! </ a >
< a  href ="#"  onMouseOut ="alert('Good try!')" > Get Out Here! </ a >

onUnload

onUnload executes JavaScript while someone leaves the page. For example to thank users.

< body  onunload ="alert('Thank you for visiting us. See you soon')" >

Handle multiple actions

How do you have an event handler call multiple functions/statements? That's simple. You just need to embed the functions inside the event handler as usual, but separate each of them using a semicolon:

< form >
< input  type ="button"  value ="Click here!"  onClick ="alert('Thanks for visiting my site!');window.location='http://www.yahoo.com'" >
</ form >
 


Form


Let's say you have a form like this:

< form  name ="aa" >
< input  type ="text"  size ="10"  value =""  name ="bb" >< br >
< input  type ="button" value ="Click Here" onclick ="alert(document.aa.bb.value)" >
</ form >

Notice that we gave the names to the form and the element. So JavaScript can gain access to them.

onBlur

If you want to get information from users and want to check each element (ie: user name, password, email) individually, and alert the user to correct the wrong input before moving on, you can use onBlur. Let's see how onBlur works:

< html >
< head >
< script >
function  emailchk()
{
var  x = document.feedback.email.value
if  (x.indexOf( " @ " ) ==- 1 )
{
    alert( " It seems you entered an invalid email address. " )
    document.feedback.email.focus()
}
}
</ script >
</ head >

< body >
< form
name ="feedback" >
Email: < input  type ="text"  size ="20"  name ="email"
onblur ="emailchk()" >< br >
Comment:  < textarea  name ="comment"  rows ="2"  cols ="20" ></ textarea >< br >
< input  type ="submit"  value ="Submit" >
</ form >
</ body >
</ html >

If you enter an email address without the @, you'll get an alert asking you to re-enter the data . What is: x.indexOf("@")==-1? This is a method that JavaScript can search every character within a string and look for what we want. If it finds it will return the position of the char within the string. If it doesn't, it will return -1. Therefore, x.indexOf("@")==-1basically means: "if the string doesn't include @, then:

alert("It seems you entered an invalid email address.")
document.feedback.email.focus()

What's focus() ? This is a method of the text box, which basically forces the cursor to be at the specified text box. onsubmitUnlike onblur, onsubmit handler is inserted inside the <form> tag, and not inside any one element. Lets do an example:

< script >
<!--
function  validate()
{
if (document.login.userName.value == "" )
{
    alert ( " Please enter User Name " )
     return   false
}
if (document.login.password.value == "" )
{
    alert ( " Please enter Password " )
     return   false
}
}
// -->
</ script >

< form  name ="login"  onsubmit ="return validate()" >
< input  type ="text"  size ="20"  name ="userName" >
< input  type ="text"  size ="20"  name ="password" >
< input  type ="submit"  name ="submit"  value ="Submit" >
</ form >

Note:
if(document.login.userName.value=="").This means "If the box named userName of the form named login contains nothing, then...". return false. This is used to stop the form from submitting. By default, a form will return true if submitting. return validate() That means, "if submitting, then call the function validate() ".

Protect a file by using Login

Let's try an example

< html >< head >
< SCRIPT  Language ="JavaScript" >
function  checkLogin(x)
{
if  ((x.id.value  !=   " Sam " ) || (x.pass.value  != " Sam123 " ))
{
    alert( " Invalid Login " );
     return   false ;
}
else
    location = " main.htm "
}
</ script >

</ head >< body >
< form >
< p > UserID: < input  type ="text"  name ="id" ></ p >
< p > Password: < input  type ="password"  name ="pass" ></ p >
< p >< input  type ="button"  value ="Login"  onClick ="checkLogin(this.form)" ></ p >
</ form >
</ body ></ html >

|| means "or", and , != indicates "not equal". So we can explain the script: "If the id does not equal 'Sam', or the password does not equal 'Sam123', then show an alert ('Invalid Login') and stop submitting. Else, open the page 'main.htm'".
 


Link


In most cases, a form can be repaced by a link:

< a  href ="JavaScript:window.location.reload()" > Click to reload! </ a >

More examples:

< a  href ="#"  onClick ="alert('Hello, world!')" > Click me to say Hello </ a >< br >

< a  href ="#"  onMouseOver ="location='main.htm'" > Mouse over to see Main Page </ a >


Date


Let's see an example:

< HTML >< HEAD >< TITLE > Show
Date </ TITLE ></ HEAD >
< BODY >
< SCRIPT  LANGUAGE ="JavaScript" >
var  x =   new  Date();
document.write (x);
</ SCRIPT >
</ BODY ></ HTML >

To activate a Date Object, you can do this: var x = new Date(). Whenever you want to create an instance of the date object, use this important word: new followed by the object name().

Dynamically display different pages

You can display different pages according to the different time. Here is an example:

var banTime= new Date()
var ss=banTime.getHours()
if (ss < =12 )
    document.write("<img src ='banner1.gif' > ")
else
    document.write(" < img  src ='banner2.gif' > ") 
 









Date object
Methods
getDate
getTime
getTimezoneOffset
getDay
getMonth
getYear
getSeconds
getMinutes
getHours



Window

Open a window

To open a window, simply use the method "window.open()":

< form >
< input  type ="button"  value ="Click here to see"  onclick ="window.open('test.htm')" >
</ form >

You can replace test.htm with any URL, for example, with http://www.yahoo.com

Size, toolbar, menubar, scrollbars, location, status

Let's add some of attributes to the above script to control the size of the window, and show: toolbar, scrollbars etc. The syntax to add attributes is:

open("URL","name","attributes")

For example:

< form >
< input  type ="button"  value ="Click here to see"
onclick ="window.open('page2.htm','win1','width=200,height=200,menubar')" >
</ form >  

Another example with no attributes turned on, except the size changed:

< form >
< input  type ="button"  value ="Click here to see"
onclick ="window.open('page2.htm','win1','width=200,height=200')" >
</ form >

Here is the complete list of attributes you can add:














width height toolbar
location directories status
scrollbars resizable menubar

Reload

To reload a window, use this method:

window.location.reload()

Close Window

Your can use one of the codes shown below:

< form >
< input  type ="button"  value ="Close Window"  onClick ="window.close()" >
</ form >
< a  href ="javascript:window.close()" > Close Window </ a >

Loading

The basic syntax when loading new content into a window is:

window.location="test.htm"

This is the same as

< a  href ="test.htm>Try this </a>

Let's provide an example, where a confirm box will allow users to choose between going to two places:

< script >
<!--
function  ss()
{
var  ok = confirm('Click  " OK "  to go to yahoo,  " CANCEL "  to go to hotmail')
if  (ok)
location = " http://www.yahoo.com "
else
location = " http://www.hotmail.com "
}
// -->
</ script >

Remote Control Window

Let's say you have opened a new window from the current window. After that, you will wonder how to make a control between the two windows. To do this, we need to first give a name to the window.Look at below:

aa=window.open('test.htm','','width=200,height=200')

By giving this window a name "aa", it will give you access to anything that's inside this window from other windows. Whenever we want to access anything that's inside this newly opened window, for example, to write to this window, we would do this: aa.document.write("This is a test.").

Now, let's see an example of how to change the background color of another window:

< html >< head >< title ></ title ></ head >
< body >
< form >
< input  type ="button"  value ="Open another page"
onClick ="aa=window.open('test.htm','','width=200,height=200')" >
< input  type ="radio"  name ="x"  onClick ="aa.document.bgColor='red'" >
< input  type ="radio"  name ="x"  onClick ="aa.document.bgColor='green'" >
< input  type ="radio"  name ="x"  onClick ="aa.document.bgColor='yellow'" >
</ form >
</ body ></ html >

opener

Using "opener" property, we can access the main window from the newly opened window.

Let's create Main page:

< html >
< head >
< title ></ title >
</ head >
< body >
< form >
< input  type ="button"  value ="Open another page"
onClick ="aa=window.open('test.htm','','width=100,height=200')" >
</ form >
</ body >
</ html >

Then create Remote control page (in this example, that is test.htm):

< html >
< head >
< title ></ title >
< script >
function  remote(url){
window.opener.location = url
}
</ script >
</ head >
< body >
< p >< a  href ="#"  onClick ="remote('file1.htm')" > File1 </ a ></ p >
< p >< a  href ="#"  onClick ="remote('file2.htm')" > File2 </ a ></ p >
</ body >
</ html >

Try it now!


Frame


One of the most popular uses of loading multiple frames is to load and change the content of more than one frame at once. Lets say we have a parent frame:

< html >
< frameset  cols ="150,*" >
< frame  src ="page1.htm"  name ="frame1" >
< frame  src ="page2.htm"  name ="frame2" >
</ frameset >
</ html >

We can add a link in the child frame "frame1" that will change the contents of not only page1, but page2 too. Shown below is the html code for it:

< html >
< body >
< h2 > This is page 1  </ h2 >
< a  href ="page3.htm"
onClick ="parent.frame2.location='page4.htm'" > Click Here </ a >
</ body >
</ html >

Notice: You should use "parent.frame2.location" to access another frame. "parent" standards for the parent frame containing the frameset code.

Source:http://www.codeproject.com/jscript/jsbeginner.asp

(0)

相关推荐

  • JavaScript For Beginners(转载)

    注:我对原文进行了编辑,对一些词汇标注颜色,方便阅读.本来准备翻译,但是觉得文章简单易懂,而且原文写得很好,所以就不献丑了.希望对JavaScript初学者能有所帮助.你可以跟着作者一起做那些示例代码,等读完文章的时候,你就可以掌握JavaScript的基本操作了,你会发现其实这一切很容易. Contents Embedding and including write and writelnDocument object Message box Function Event handler Fo

  • JavaScript初学者必看“new”

    译者按: 本文简单的介绍了new, 更多的是介绍原型(prototype),值得一读. 原文:JavaScript For Beginners: the 'new' operator 译者: Fundebug 为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习 当你使用new的时候,会: 1.创建一个新的空对象: 2.将this绑定到该对象: 3.添加一个名为__proto__的新属性,并且指向构造函数的原型(prototype): 4.返回该this对象. 如果你

  • (转载)JavaScript中匿名函数,函数直接量和闭包

    原文出处: http://www.dnew.cn/post/196.htm 先看下下面几种写法 1.function f(x){return x*x;};f(x); 2.(function(x){return x*x;})(x); 3.(function(x){return x*x;}(x)); 第一种我们应该都很熟悉了,这是我们经常使用的写法.第二第三种都是匿名函数的写法. ------------------------------------------------------------

  • Javascript 判断 object 的特定类转载

    大家都知道 Javascript 的 typeof 可以获取变量的类型, 但是 typeof 返回值只有六种 "number," "string," "boolean," "object," "function," 和 "undefined." 其实 Javascript 还有不少特殊的类别 比如 Array, Date. 为什么都不在能在 typeof 返回呢? 原来 Javascri

  • Javascript的一种模块模式

    Douglas Crockford已经传授了一个有用的单例模式(singleton pattern)实现此规则,我认为他的模式有益于你基于YUI的那些应用.Douglas叫它模块模式(module pattern).它是如下工作的: 创建一个命名空间对象:如果你使用YUI,可以用YAHOO.namespace()方法: YAHOO.namespace("myProject");这分配了一个空的myProject对象,是YAHOO的一个成员(如 果myProject已存在的话,则不会被覆

  • javascript深入理解js闭包

    一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量. Js代码 var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量. Js代码 function f1(){ var n=999; } alert(n); // error 这里有一个地方需要注意,函数

  • Javascript模块模式分析

    Douglas Crockford已经传授了一个有用的单例模式(singleton pattern)实现此规则,我认为他的模式有益于你基于YUI的那些应用.Douglas叫它模块模式(module pattern).它是如下工作的: 创建一个命名空间对象:如果你使用YUI,可以用YAHOO.namespace()方法: YAHOO.namespace("myProject");这分配了一个空的myProject对象,是YAHOO的一个成员(如 果myProject已存在的话,则不会被覆

  • Javascript注入技巧

    作者: kostis90gr 翻译: 黯魂[S.S.T] 本文已发表于<黑客防线>6月刊,版权属于<黑客防线>及脚本安全小组,转载请保持文章完整性,谢谢 :) 这份指南仅仅是出于报告目的,如果任何人把它用于违法目的,我不负责任. 通过使用javascript注入,用户不用关闭网站或者把页面保存在他的PC上就可以改变网站中的内容.这是由他的浏览器的地址栏完成的. 命令的语法看上去像这样: Copy code javascrit:alert(#command#) 比方说如果你想看到在网

  • JavaScript 轻松搞定快捷留言功能 只需一行代码

    别急,方法非常简单,还是先听我说说它的来历吧... 最开始,快捷留言这个功能要追溯到发表[AjaxControlToolkitTests自动测试框架完全解析之一:架构篇]这篇文章的时候,当时它纯粹是那篇文章的副产品,本来没太在意,本想只是给像我一样的懒人准备的一条捷径而已,后来因为没有提示这个功能会直接自动提交留言,还引起了几枚同学的不满意,于是后来又在醒目位置加上了提示:[提示:快捷链接会直接推荐并提交留言信息.],才平息了局势: 再后来,有部分同学可能是鼠标太高级,连击速度特别快的原因,每次

  • javascript定时保存表单数据的代码

    (忘记是不是两家邮箱都有这个功能). 那这个功能是怎么做的呢? 定时,我们知道怎么弄,但保存呢?也许我们会通过隐藏域等手段来存放数据.但是,这个却有个缺点:那就是刷新页面后,数据将会丢失. 而此时,就该轮到我们很少关注,而且估计有不少人不知道的UserData 行为(userData Behavior)登场了: 而这个UserData是什么?怎么用?,我将在文章最后转载一篇介绍它的文章. 现在,我直接上例子,所谓无代码,无真相嘛: 复制代码 代码如下: <!DOCTYPE html PUBLIC

随机推荐