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:
Hide Copy Code
<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:
Hide Copy Code
<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:
Hide Copy Code
<script language="JavaScript1.2">
You can use another attribute SRC to include an external file containing JavaScript code:
Hide Copy Code
<script language="JavaScript" src="hello.js"></script>
For example, shown below is the code of the external file
hello.js
:
Hide Copy Code
document.write("Hello World!")
The external file is simply a text file containing JavaScript code with the file name extension ".js". Note:
- Including an external file only functions reliably across platforms in the version 4 browsers.
- 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:
Hide Copy Code
<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:
Hide Copy 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:
Hide Copy 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.lastModified.
bgColor and fgColor
Lets try playing around withbgColor
and fgColor
:
Hide Copy Code
<script> document.bgColor="black" document.fgColor="#336699" </script>
Message Box
alert
There are three message boxes:alert
, confirm
, andprompt
. Let's look at the first one:
Hide Copy Code
<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:
Hide Copy Code
window.confirm("Are you sure you want to quit?")
prompt
Prompt box is used to allow a user to enter something according the promotion:
Hide Copy Code
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:
Hide Copy Code
alert() confirm() prompt()
Variables and Conditions
Let's see an example:
Hide Copy Code
<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,
Hide Copy Code
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.
Hide Copy Code
<script> var y=window.prompt("please enter your name") window.alert(y) </script>
Another example:
Hide Copy Code
<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:
Hide Copy Code
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:
Hide Copy Code
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:
Hide Copy Code
<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:
Hide Copy Code
<body onload="ss()"> <frameset onload="ss()"> <img src="whatever.gif" onload="ss()">
onMouseover,onMouseout
These handlers are used exclusively with links.
Hide Copy Code
<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.
Hide Copy Code
<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:
Hide Copy Code
<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:
Hide Copy Code
<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 useonBlur
. Let's see how onblur
works:
Hide Copy Code
<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>
Hide Copy Code
<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("@")==-1
basically means: "if the string doesn't include @, then:
Hide Copy Code
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. onsubmit
Unlike onblur, onsubmit
handler is inserted inside the <form>
tag, and not inside any one element. Lets do an example:
Hide Copy Code
<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>
Hide Copy Code
<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
Hide Copy Code
<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>
Hide Copy Code
</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:
Hide Copy Code
<a href="JavaScript:window.location.reload()">Click to reload!</a>
More examples:
Hide Copy Code
<a href="#" onClick="alert('Hello, world!')">Click me to say Hello</a><br>
Hide Copy Code
<a href="#" onMouseOver="location='main.htm'">Mouse over to see Main Page</a>
Date
Let's see an example:
Hide Copy Code
<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:
Hide Copy Code
var banTime= new Date() var ss=banTime.getHours() if (ss<=12) document.write("<img src='banner1.gif'>") else document.write("<img src='banner2.gif'>")
Methods | ||
getDate getTime getTimezoneOffset | getDay getMonth getYear | getSeconds getMinutes getHours |
Window
Open a window
To open a window, simply use the method "window.open()":
Hide Copy Code
<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:
Hide Copy Code
open("URL","name","attributes")
For example:
Hide Copy Code
<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:
Hide Copy Code
<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:
Hide Copy Code
window.location.reload()
Close Window
Your can use one of the codes shown below:
Hide Copy Code
<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:
Hide Copy Code
window.location="test.htm"
This is the same as
Hide Copy Code
<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:
Hide Copy Code
<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:
Hide Copy Code
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:
Hide Copy Code
<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:
Hide Copy Code
<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
):
Hide Copy Code
<html> <head> <title></title> <script> function remote(url){ window.opener.location=url } </script> </head> <body> <p><a href="#" onClick="remote('file1.htm')">File 1</a></p> <p><a href="#" onClick="remote('file2.htm')">File 2</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:
Hide Copy Code
<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:
Hide Copy Code
<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.frameName.location"
to access another frame. "parent" standards for the parent frame containing the frameset code
No comments:
Post a Comment