Top Banner
W. W. Milner JavaScript
44

W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

Dec 26, 2015

Download

Documents

Shana Pierce
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: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

JavaScript

Page 2: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Chapter 1 - Intro

• Why use JavaScript? Interactivity

• LiveScript JavaScript Jscript ECMAScript

• JavaScript is not Java!

• Programming…..

Page 3: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Chapter 2

• Do what it says on page 5

Page 4: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

The first script

<SCRIPT TYPE="text/javascript" ><!--alert("Hello world");//--></SCRIPT>

Page 5: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Using separate script files

<!-- This shows a first piece of JavaScript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title> ----- 1 - HelloWorld ------- </title><SCRIPT SRC="hithere.js" TYPE="text/javascript"></head><body><p> Some page content </p></body></html>

Page 6: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Chapter 3

• Variables – data values held in memory

• Declaring variables

• var price=2.50;

Page 7: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Input

Entering data values at ‘run-time’

price = prompt("Enter the price", "10.00");

Page 8: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

What’s wrong?

price = prompt "Enter the price", "10.00";

price = prompt("Enter the price", "10.00";

price = prompt("Enter the price", 10.00);

price = prompt( Enter the price", "10.00");

prompt("Enter the price", "10.00");

price = prompt("Enter the price", "10.00")

Page 9: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Arithmetic

• total = price * quantity;

• result = 2 + 3;

• result = 1 + 3 * 4;

• result = (1 + 3) * 4;

• result = 7 / 8;

• Try page 12

Page 10: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Data type

• Number, date, currency, boolean…

• String type = string of characters

• Enclose in quotes –var myName;

myName = “Walter Milner”;

Page 11: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

String concatenation

• A + joins strings

string1 = “fat “;

string2 = “cats”;

alert(string1+string2); >> fat cats

• What is

"9" + "9"?

Page 12: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Changing string type to number

• answer = "123.4";

• result = parseFloat(answer);

Page 13: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

if - the decision statement

unitPrice = 1.30;if (quantity > 100)

unitPrice = 1.20;

Symbol Meaning

> greater than

< less than

>= greater than or equal to

<= less than or equal to

== equal

!= not equal

Do task on page 14

Page 14: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Repeating - loops

var counter;for (counter=0; counter<4; counter++ )

alert(counter);

Do task on page 15

Page 15: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Chapter 3 - functions

• Code structure - splitting code into parts

• Function like mini-program

• Data comes in, processed, result returned

Page 16: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Example function

function average(a,b,c){

var total;total = a+b+c;return total/3;

}

Values come in here

Value returned here

Page 17: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Call and return of functionfunction average(a,b,c){

var total;total = a+b+c;return total/3;

}

..

x=4;y=3;z=2;answer=average(x,y,z);alert(answer);

start

function call

x y z copied to a b c

Page 18: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

functions

do the tasks page 17/18

Page 19: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

event-handling functions

• examples of events -

• key press, mouse move, mouse click, timer times out

• GUI programming = responding to user events

• event-handler = function called when an event happens

Page 20: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head><title> ----- 2 - functions ------- </title><SCRIPT TYPE="text/javascript" ><!--function greet()

{alert("Loaded");}

//--></SCRIPT></head> <body onload="greet()" ></body></html>

The onLoad event

do task page 18/19

Page 21: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Chapter 5 - The DOM

• A way to refer to things in the window

• objects

• properties

• methods

• events

Page 22: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

DOM example

var newWindow =window.open("","nw", "menubar, status, resizable");

newWindow.status ="Hello folks";

newWindow.resizeTo(400,200);• Do task top of page 21

Page 23: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

DOM hierarchy

window

navigator screen document history location

form form

button form

Page 24: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

navigator

• alert(window.navigator.userAgent);

the windowthe navigator in the window

the useragent property of the

navigator

Page 25: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

screen

• readonly

window.moveTo(0,0);

x = screen.availWidth;

y = screen.availHeight;

window.resizeTo(x,y );

Page 26: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

location

• location.href="http://www.yahoo.com/";

Page 27: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

document

• document.bgColor="yellow";• document.write("This is some <b>bold text</b>");

• Try the tasks on page 23

Page 28: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Forms

• CGI GET and POST and server-side processing

• JavaScript client-side processing

• Form data validation

Page 29: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Form example

<form name="myform" method="post" action="" > <input type="text" name="num1"> <input type="text" name="num2"> <br> <input type="button" name="Button" value="+" > <br> Result:<input type="text" name="result"></form>

Page 30: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Event-handler for button

<input type="button" name="Button" value="+" onClick="doAdd()">

function doAdd(){var number1, number2, result;number1=parseFloat(myform.num1.value);number2=parseFloat(myform.num2.value);result = number1+number2;myform.result.value=result;}

Page 31: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Forms task

• Try the task on page 27

Page 32: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Form data validationfunction checkForm(){var OK=true;if (document.form1.forename.value=="")

{alert("Please type in your forename");

document.getElementById("fNamePrompt").style.color="red";OK=false;}

if (document.form1.surname.value==""){alert("Please type in your surname");

document.getElementById("sNamePrompt").style.color="red";OK=false;}

if (OK){// submit form here}

}

Page 33: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Form validation task

• Try the task on page 29

Page 34: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Chapter 7 - The Math object

function rollDice(){var x = Math.random();x = 6*x;x = Math.floor(x);x=x+1;alert(x);} Task on page 31

Page 35: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Date object

var now = new Date();

var result="It is now "+now;document.getElementById("timeField").innerText=result;

..

<p id="timeField"> </p>

• hours = now.getHours();

• Task on page 32

Page 36: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Timing - setTimeout

interval = setTimeout('bang()', 5000);

5 seconds after this statement executes, this function is called

make something happen (once) after a fixed delay

clearInterval(interval);

cancels this

Page 37: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

setInterval

makes something happen repeatedly at fixed intervals

interval = setInterval('ticktock()', 1000);

this function is called every second after this

clearInterval(interval);

stops it

Page 38: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Timing - tasks

• Try page 33

Page 39: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Chapter 8 - Standard tricks - rollovers

..function showPic(f){document.pic.src=f;}// --></SCRIPT>  </head> <body ><p onMouseOver="showPic('pic1.gif')"> Pic one </p><p onMouseOver="showPic('pic2.gif')"> Pic two</p><img name = "pic" src="default.gif"></body></html>

Page 40: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Image roll-over<SCRIPT TYPE="text/javascript"><!--function showPic(f){document.pic.src=f;}// --></SCRIPT> </head> <body ><img name = "pic" src="default.gif" onMouseOver="showPic('pic1.gif')" onMouseOut="showPic('pic2.gif')" ></body>

Task - try this out - produce a page showing an image, which changes to a second image when the mouse goes over it, and a third image when the mouse leaves it. Get images from the Web or draw them using the graphics software on the computer

Page 41: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Pre-loading images

<SCRIPT TYPE="text/javascript"><!--var image1, image2, image3; function preLoad(){image1 = new Image(30,30);image2 = new Image(30,30);image3 = new Image(30,30);image1.src="default.gif";image2.src="pic1.gif";image3.src="pic2.gif";document.pic.src = image1.src;}// --></SCRIPT></head><body onLoad="preLoad()" onMouseOver="document.pic.src = image2.src" ><img name = "pic" ></body></html>

Page 42: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Menus

Page 43: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

Styles for menus

<style type="text/css"><!--#ID1, #ID2 { /* initial settings of the two menu blocks */

font-family: Geneva, Arial, Helvetica, san-serif;font-size: 12px;color: #FFFFFF ;display : none; /* <<<< so you cant see them */background-color= #ffff00;position: absolute;top: 40px;width: 55px;border: thin solid black}

..-->

Page 44: W. W. Milner JavaScript. W. W. Milner Chapter 1 - Intro Why use JavaScript? Interactivity LiveScript JavaScript Jscript ECMAScript JavaScript is not Java!

W. W. Milner

JavaScript for the menus

function mouseMethod(leftPos, whichID){ /* when they click on a menu item *//* change from display none to display block - can see it */document.getElementById(whichID).style.display = "block";/* make it correct position across screen */document.getElementById(whichID).style.left = leftPos;}

function hideAgain(whichID){ /* when they click hide, revert to display none */document.getElementById(whichID).style.display = "none";}

Task - Try this out. Add a third block