Cs453 D HTML Javascript 1
Cs453 D HTML Javascript 1
JavaScript
Tom Horton
Alfred C. Weaver
CS453 Electronic Commerce
1
Overview
JavaScript introduction
Your tasks:
Readings
HTML Background
Principles
Example of an element:
<name attr1=attrval>content</name>
Begin and end tags set off a section of a
document
Comments:
<!-- -->
Example:
<html>
<head>
</head>
<body>
.
</body>
</html>
Larger Example
<html>
<head>
<title>An Example</title>
</head>
<body>
<h3><hr>An Example</h3>
<p align="left">
<font face="Comic Sans MS"
size="4"><b>
Hello World!</b></font>
</p>
<p align="right">
<font size="5"><u>I am
21.</u></font>
</p>
<!-- see next column -->
<p>
<ol type="I" start=7>
<li><font
color=#00FF00>Green</fon
t></li>
<li>Yellow</li>
<ul type=square>
<li>John</li>
<li>Mike</li>
</ul>
</ol>
</p>
</body>
</html>
9
Displays As
10
Basic Tags
Text display:
Structure:
Attributes:
Links:
<a href=></a>
Images:
Tables
Forms: later
12
More HTML
Question:
Why?
14
15
(ok, mostly)
DOM
You get
anything you
want from
More info:
http://en.wikipedia.org/wiki/Document_
Object_Model
17
W3C Standards
XML, XHTML
CSS, XSL
XSLT
DOM
ECMAScript
etc
18
JavaScript
An example of a scripting
langauge that is embedded in
HTML documents
History
20
General Format
<!doctype ...>
<html>
<Head>
<Title> Name of web page </title>
<script type="text/javascript">
...script goes here
</script>
</head
<body>
...page body here: text, forms, tables
...more JavaScript if needed
...onload, onclick, etc. commands here
</body>
</html>
21
Characteristics
Case sensitive
Object oriented
Produces an HTML document
Dynamically typed
Standard operator precedence
Overloaded operators
Reserved words
22
Characteristics
23
Characteristics
JavaScript Topics
code placement
document.writeln
document tags
window.alert
user input/output
parseInt and
parseFloat
arithmetic
arithmetic comparisons
for loops
while loops
do-while loops
if-else
variable values in tags
math library
switch
break
labeled break
continue
Booleans
25
JavaScript Topics
functions
random numbers
rolling dice
form input
form output
submit buttons
games
arrays
searching
strings
substrings
string conversions
markup methods
26
Dynamic web-pages
Image manipulation
Cookies
27
Whats DHTML?
Other References
Browser Compatability
Use of:
<script type=text/javascript"
language=javascript" >
<!--
Organization of JavaScript
Define in header
Or load a .js file in header:
<script type="text/javascript"
language="javascript" src="mylib.js">
Global variables
31
JavaScript
Programming by example
32
document.writeln
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<! Welcome to JavaScript -->
<HEAD>
<TITLE> Welcome to JavaScript </TITLE>
<SCRIPT TYPE="text/javascript">
document.writeln( "<FONT
COLOR='magenta'><H1>Welcome to ",
"JavaScript Programming!</H1></FONT>" );
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
33
document.write
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Using document.write </TITLE>
<SCRIPT TYPE="text/javascript">
document.write ( "<H1>Welcome to ");
document.writeln( "JavaScript Programming!</H1>" );
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
34
window.alert
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Using window.alert </TITLE>
<SCRIPT TYPE="text/javascript">
window.alert( "Welcome to\nJavaScript\nProgramming!" );
</SCRIPT>
</HEAD>
<BODY>
<P>Click Refresh (or Reload) to run this script again.</P>
</BODY>
</HTML>
35
User input/output
<SCRIPT TYPE="text/javascript">
var firstNumber, // first string entered by user
secondNumber, // second string entered by user
number1,
// first number to add
number2,
// second number to add
sum;
// sum of number1 and number2
// read in first number from user as a string
firstNumber = window.prompt("Enter first integer", "0" );
// read in second number from user as a string
secondNumber = window.prompt( "Enter second integer",
"0" );
// convert numbers from strings to integers
firstNumber = parseInt(firstNumber);
number2 = parseInt( secondNumber );
// add the numbers
sum = firstNumber + number2;
// display the results
document.writeln( "<H1>The sum is " + sum + "</H1>"36
);
Functions
<SCRIPT TYPE = "text/javascript">
var input1 = window.prompt( "Enter first number",
"0" );
var input2 = window.prompt( "Enter second number",
"0" );
var input3 = window.prompt( "Enter third number",
"0" );
var value1 = parseFloat( input1 );
var value2 = parseFloat( input2 );
var value3 = parseFloat( input3 );
var maxValue = maximum( value1, value2, value3 );
document.writeln( "First number: " + value1 +
"<BR>Second number: " + value2 +
"<BR>Third number: " + value3 +
"<BR>Maximum is: " + maxValue );
// maximum method definition (called from above)
function maximum( x, y, z ) {
37
Random Numbers
<SCRIPT TYPE="text/javascript">
var value;
document.writeln( "<H1>Random Numbers</H1>" +
"<TABLE BORDER = '1' WIDTH = '50%'><TR>" );
for ( var i = 1; i <= 20; i++ ) {
value = Math.floor( 1 + Math.random() * 6 );
document.writeln( "<TD>" + value + "</TD>" );
if ( i % 5 == 0 && i != 20 )
document.writeln( "</TR><TR>" );
}
document.writeln( "</TR></TABLE>" );
</SCRIPT>
38
Rules of Craps
First roll:
7 or 11 is a win
2, 3, or 12 is a lose
otherwise, roll becomes your point
Subsequent rolls:
Craps
<SCRIPT TYPE="text/javascript">
// variables used to test the state of the game
var WON = 0, LOST = 1, CONTINUE_ROLLING = 2;
// other variables used in program
var firstRoll = true, // true if first roll
sumOfDice = 0,
// sum of the dice
myPoint = 0,
// point if no win/loss on first roll
gameStatus = CONTINUE_ROLLING; // game not over yet
41
Craps
// process one roll of the dice
function play() {
if ( firstRoll ) {
// first roll of the dice
sumOfDice = rollDice();
switch ( sumOfDice ) {
case 7: case 11:
// win on first roll
gameStatus = WON;
document.craps.point.value = ""; // clear
point field
break;
case 2: case 3: case 12:
// lose on first roll
gameStatus = LOST;
document.craps.point.value = ""; // clear
42
Craps
default:
// remember point
gameStatus = CONTINUE_ROLLING;
myPoint = sumOfDice;
document.craps.point.value = myPoint;
firstRoll = false;
}
}
else {
sumOfDice = rollDice();
if ( sumOfDice == myPoint ) gameStatus = WON;
else if ( sumOfDice == 7 ) gameStatus = LOST;
}
43
Craps
if ( gameStatus == CONTINUE_ROLLING ) window.alert ("Roll again");
else {
if ( gameStatus == WON ) {
window.alert ("Player wins. " + "Click Roll Dice to play again.");
document.craps.point.value = " ";
}
else {
window.alert ("Player loses. " + "Click Roll Dice to play again.");
document.craps.point.value = " ";
}
firstRoll = true;
}
}
44
Craps
// roll the dice
function rollDice() {
var die1, die2, workSum;
die1 = Math.floor( 1 + Math.random() * 6 );
die2 = Math.floor( 1 + Math.random() * 6 );
workSum = die1 + die2;
document.craps.firstDie.value = die1;
document.craps.secondDie.value = die2;
document.craps.sum.value = workSum;
return workSum;
}
</SCRIPT>
45
Poker Hand
<SCRIPT TYPE="text/javascript">
function rand1toN(N) {
return Math.floor( 1+Math.random()*N );
}
function dealcard(card) {
var rank = new Array(0,"A","2","3","4","5","6","7",
"8","9","T","J","Q","K");
var suit = new Array(0, "Spades", "Hearts", "Diamonds", "Clubs");
card[0] = rank[rand1toN(13)];
card[1] = suit[rand1toN(4)];
}
46
Poker Hand
var card = new Array(2);
var player = new Array(10);
var dealer = new Array(10);
for (var i=0; i<=4; i++) {
dealcard(card);
player[i*2] = card[0];
player[i*2+1] = card[1];
dealcard(card);
dealer[i*2] = card[0];
dealer[i*2+1] = card[1];
}
47
Poker Hand
document.writeln("<H1> PLAYER </H1>");
document.writeln("<TABLE BORDER='1' >");
for (var i=0; i<=4; i++) {
document.writeln("<TR><TD><P>" + player[i*2] + "</TD>"
+ "<TD><P>" + player[i*2+1] + "</TD></TR>");
}
document.writeln("</TABLE> </HTML>");
</SCRIPT>
48
Character Processing
<SCRIPT TYPE="text/javascript">
var s = "ZEBRA";
var s2 = "AbCdEfG";
document.writeln( "<P> Character at index 0 in '"+
s + '" is " + s.charAt( 0 ) );
document.writeln( "<BR>Character code at index 0 in '" +
s + "' is " + s.charCodeAt( 0 ) + "</P>" );
document.writeln( "<P>'" + String.fromCharCode( 87, 79, 82, 68 ) +
"' contains character codes 87, 79, 82 and 68</P>" );
document.writeln( "<P>'" + s2 + "' in lowercase is '" +
s2.toLowerCase() + "'" );
document.writeln( "<BR>'" + s2 + "' in uppercase is '" +
s2.toUpperCase() + "'</P>" );
</SCRIPT>
49
Radio buttons
52
Checkboxes
53
Textboxes
54
Self-grading Tests
55
Character String
Processing
56
Cookies
57
Events
58
Events
Mouse Events
60
Handling Time
61
Controlling Time
62
Handling Images
63
64
Continuous Update
65
End of Examples
66