Top Banner
JavaScript Making Web pages come alive
56

JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Dec 14, 2015

Download

Documents

Bruce Martin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

JavaScript

Making Web pages come alive

Page 2: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Objectives

• Be able to read JavaScript scripts

• Be able to write JavaScript scripts

Page 3: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

To See Examples

• Open text editor

• Create HTML page

• Type in each example, save and view with browser

Page 4: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Static vs. Dynamic

• Static – page appears exactly as it was encoded,

nothing changes– only HTML

• Dynamic– page changes (possibly in response to users

actions)– Can’t be only HTML– Scripts

Page 5: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Scripts: server-side vs. client-side

• Server-side– the first type possible on the Web– action occurs at the server

• Client-side– handles user interaction– generally easier to implement– may be prepared and implemented offline– action occurs on the client side (browser)– JavaScript is the most common example

Page 6: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

DHTML

• HTML-Document description-we did

• JavaScript- Client-side interaction-will do

• CSS- Style definition-beyond

• Dynamic HTML = HTML + CSS + scripts

Page 7: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

JavaScript

• Developed by Netscape to be simple, cross-browser scripting language for Web

• Syntax based on ‘C’ - a good starting point to learn other programming languages

• JavaScript is not Java

• <script type="text/javascript"> …</script> enclose a JavaScript script

Page 8: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Write()

• JavaScript’s output statement:

document.write (“Text”);

• Inside the <script> tag, we must output HTML

document.write (“<p>Text<br/>text</p>”);

Page 9: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Hello World

<html><head><title>hello javascript</title></head><body>

<script >document.writeln ("Hello, World!");

</script></body>

</html>• Output?

Page 10: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

What is the output?

<html> <head><title>hello javascript</title></head> <body> <script > document.write ("Hello,\n World"); document.write ("Hello,<br/>2 the

&nbsp;&nbsp;&nbsp;World"); </script> </body></html>

Page 11: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Why?

• Hello, WorldHello,2 the    World the document.writeln() method preserves any

line breaks in the text string.

Page 12: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

JavaScript

• Statements end with ;– Can often get away with omitting

• Character strings enclosed in “ ” or ‘ ’

• Can include an external source file with the src attribute :

<script src=“file_name.js”></script>

Page 13: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

JavaScript Comments

• // Ignore rest of line

• /* Ignore everything

enclosed

*/

• Don’t forget to end the comment

Page 14: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Objects

• JavaScript is an Object Oriented Language.

• Objects are things—nouns

– They have attributes---adjectives

• We call the attributes properties

– They have actions---verbs

• We call the actions methods– use ()

Page 15: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Objects

• Use dot-notation to indicate that a method or a property belongs to an object.

• Car analogy

• document.write()

• document.bgColor

• Recall: methods have ()

Page 16: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Objects

• JavaScript objects include the HTML elements, window, document

• lastModified is a property of the document object.

Page 17: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

JavaScript

• A variable stores a value.– Declare a variable with the keyword var

• Assignment: variable = value;

• + adds numbers

• + concatenates strings of characterse.g. “ab” + “cd” is “abcd”

• lastModified is a property of the document object.

Page 18: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Example

<html> <head><title>Last Modified</title></head> <body> <script> var date; date=document.lastModified; document.writeln ("This page was last modified:“ + date); </script> </body></html>• Will automatically update. Output?

Page 19: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Output

This page was last modified: 01/25/2005 12:40:18

• Note:

var date=document.lastModified;

could have been in one line• See new window 2.html

Page 20: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Window

• The document object is contained within a window object.

• window has methods:– Alert ()– Confirm ()– Prompt ()

• window is assumed so• alert () is equivalent to window.alert ()

Page 21: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Alert()

• Alert (“some string”) pops up a message box containing its string.

• It is a method of the (assumed) window object.

Page 22: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Alert()

<html><head><title>hello alert</title></head><body>

<script>alert ("Hello, World!");

</script></body>

</html>• Output: alert box. Run it to see.

Page 23: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Confirm

• Confirm uses if-else logic. true/false. Can I assume?

• Declare a variable.

• Confirm returns a value which you assign to a variable. O.K. button sends true. Cancel sends false.

• Test the variable:

Page 24: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Confirm

• <script> var x = confirm ("Are you sure you are ok?"); if (x)

alert ("Good!"); else

alert ("Too bad");</script>

Page 25: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Prompt()

Prompt() method returns the text

<script>

var y=prompt

("please enter your name");document.writeln (“Hello, ” + y);

</script>

Page 26: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Prompt()

• You assign the result to a variable.

• You use the value.

• Optional: Second parameter to Prompt()

• Is the default value.

Page 27: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Equality

• == tests for equality

• A==B has the value true when A and B are the same; false otherwise.

• != tests for inequality

Page 28: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Password

<head> <script >

var guess; var password=“fool”; guess=prompt(' enter password ');

if (password!=guess) location=“forbidden.html”;

</script> </head> • Why fool? …

Page 29: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Because…

• Password is in source which may be viewed .

• I must admit that I couldn’t view it!!

Page 30: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Events

• Usually, user actions generate events that belong to objects.

• mouseover

• load

• click

Page 31: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Event Handlers

• Event handlers-respond to users actions– onmouseover– onmouseout– onload– onunload

• Event handlers are put inside corresponding HTML tags.

• Not inside <script>…</script>

Page 32: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Case

onClick="alert ('You clicked the button!');"

• The underlined parts are HTML• The quoted string is JavaScript• onClick

– The Java naming convention is easier to read.– This is fine in HTML, but an error if it occurs in

JavaScript. JavaScript is case sensitive. HTML is not .

• Please note: Since we have a quoted string inside another quoted string, we need both single and double quotes.

Page 33: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Event Handlers

• Most HTML elements have the following event handlers:– onClick -- the form element is clicked– onDblClick -- the form element is clicked twice in close

succession– onMouseDown -- the mouse button is pressed while over the

form element– onMouseOver -- the mouse is moved over the form element – onMouseOut -- the mouse is moved away from the form

element– onMouseUp -- the mouse button is released while over the form

element– onMouseMove -- the mouse is moved

• In JavaScript, these should be spelled in all lowercase

Page 34: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Change Color

<html><head><title>Change the Background Color</title></head><body >

<h3><a href="#" onMouseover="document.bgColor=‘blue';" onMouseout ="document.bgColor='white';">

Move your cursor over this link to change background color to blue.</a></h3></body> </html>

Page 35: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

OnMouseover

<a href="#" onMouseover="alert ('Ouch! I asked you not to click this link!');">

Don't click this link!</a>

• What’s the first thing you’ll do? • Aside: I typed this twice. One worked. One

didn’t. I never figured out difference.

Page 36: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Status (skip)

• The window object has the property status whose value is displayed in the status bar.

• Change it only briefly cause need the info.?

<a href=“#" onMouseover="status='Hi there!'; return true;" onMouseout="status=' '; return true;">Place your mouse here!</a>

Page 37: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Push Button• Object that has some effect when it is pushed:

e.g. doorbell

except traffic light• User defined (as opposed to which?)• Has no default behavior. (what was….)• May have client side scripts associated with its

event attributes. When an event occurs (e.g., the user presses the button, releases it, etc.), the associated script is triggered.

Page 38: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Buttons are contained in forms

window

document

form

text submit reset button

Page 39: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Button

• type="button"This command declares the input to be a button.

• value="Click Me"This will be the text people will see on the button. Write whatever you want your visitors to see.

• name="button1"You can give the button a name so you can refer to it.

Page 40: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Button event handler

<form> <input type="button" value="See Some Text" name="button2" onClick="alert ('Some Text');">

</form>

• Recall: window is the assumed object.

Page 41: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Color buttons

<form> <input type="button" value="Change to Yellow!" name="buttonY" onClick="document.bgColor='yellow‘;">

<input type="button" value="Change to White!" name="buttonW" onClick="document.bgColor=‘white‘;">

</form>

Page 42: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

open

• open( ) is a method of the window object.• It opens a new window.

open(“URL”);

• You can use it inside an event handler. • I had to use window.open(). I don’t know

why.

Page 43: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Open

<form>

<input type="button" name="button1" value ="new" onClick ="window.open('forbidden.html');">

</form>

<a href="#" onClick ="window.open('forbidden.html');">

open sesame</a>

Page 44: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Full featured window

window.open('http://www.blah.com/blah',

‘title','width=400,height=200,toolbar=yes, location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes, resizable=yes') ;

Page 45: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Functions

• A function is a named piece of code that performs a task. Has ()

• Functions are put in <head> so they are loaded before the page displays.

• Are executed only when invoked.

• Body enclosed in{ } (called a block)

• May have parameters in () (values used by the the function to do its task).

Page 46: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Functions

• Methods are similar to functions that belong to an object.

• Functions are similar to methods that belong to the script. Placed in head so they are loaded before they are called.

• An event handler should be very short– Many handlers call a function to do their job

(delegate).

Page 47: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Examples

• Function_wo_param

• Simple calculator.html

• Bgcolor_buttons_func.html– On slide, too

• Mixed up– On slide, too

Page 48: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

<! -- bgcolor_buttons what will happen? --><html><head> <script>

function yellow(){document.bgColor='yellow';}function white(){document.bgColor='white';}

</script></head><body> <form>

<input type="button" value="Change toYellow" name="buttonY“ onClick=“yellow();">

<input type="button" value="Change to White" name="buttonW“ onClick="white();">

</form></body></html>

Page 49: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

<! -- mixed up. what will happen? --><html><head> <script>

function yellow(){document.bgColor='yellow';}function white(){document.bgColor='white';}

</script></head><body> <form>

<input type="button" value="Change toYellow" name="buttonY“ onClick="white()">

<input type="button" value="Change to White" name="buttonW“ onClick="yellow()">

</form></body></html>

Page 50: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Script in Head

<head> <title>welcome!</title><script >

alert (‘Welcome!'); </script>

</head> • This will display the alert before the page starts

loading. It’ll disappear when page loads. A function would be called from the body and executed.

Page 51: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Debugging Your JavaScript Programs

• Three types of errors:– Load-time errors (occurs when the script is

loading)– Run-time errors (occurs when the being

executed)– Logical errors (free from syntax and structural

mistakes, but result in incorrect results)

Page 52: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Common Mistakes

• You need to debug your program: fix the mistakes w/o adding new ones.

• Common mistakes include:– Misspelling a variable name– Mismatched parentheses or braces– Mismatched quotes– Missing quotes– Using ( instead of [ or {– Using = in place of ==

Page 53: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Tips for Writing Good JavaScript Code

• Use good layout to make your code more readable. Indent command blocks to make them easier to read and to set them off from other code

• Use descriptive variable names to indicate the purpose of your variables

• Be careful how you use uppercase and lowercase letters in your code, because JavaScript commands and names are case-sensitive

Page 54: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Tips for Writing Good JavaScript Code

• Add comments to your code to document the purpose of each script

• Initialize all variables at the top of your script and insert comments describing the purpose and nature of your variables

• Create customized functions that can be reused in different scripts. Place your customized functions in external files to make them available to your entire Web site

Page 55: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Summary

• Objects– Properties– Methods

• Variables

• Push buttons

• Events and handlers-inside HTML tags

• functions

Page 56: JavaScript Making Web pages come alive. Objectives Be able to read JavaScript scripts Be able to write JavaScript scripts.

Summary

• Given an HTML file containing a script, you should be able to show the corresponding web page.

• Given a web page, you should be able to show the corresponding HTML file.