JavaScript JavaScript & jQuery the missing manual (Second Edition) 1

JavaScript
JavaScript & jQuery the missing manual
(Second Edition)
1
Objectives
You will be able to:
 Add simple client-side computing to a
web page using JavaScript.
 Understand and make use of each place
a JavaScript script can be added to a
web page.
 Get scripts executed as the page is
rendered and when events occur.
 Use a JavaScript function to respond to
a button click.
2
JavaScript

JavaScript is a scripting language






Interpretive. No compiler.
Loosely typed.
Used for client side programming.
Much more responsive than server side
programming.
Supported by all modern browsers.
No relation to the Java programming language

except for C-like syntax.
3
Hello, World!

In Visual Studio, create a new html file
named hello_javascript.html



Save on desktop.
No website or project needed
In Source view, add a title and text to
the template created by Visual Studio.


This is pure HTML.
Could use Notepad.

But Visual Studio saves us some typing.
4
Source View
5
Try it out


Save on your desktop as hello.html
Double click on the file’s icon to open it
in you default browser.
6
Try it out
7
Adding a Script



Now let's use a JavaScript script to do
the output.
We will replace the “Hello, world!” text
with a script that outputs the same text.
Still an html file.


Not aspx
This page could be on any web server.

Not necessarily a Microsoft IIS server
8
Adding a Script
9
Script Output

When the browser renders the page and
reaches a script in the body of page it
executes the script.



"document.write()" output is rendered to
the page as if the same text had appeared
at that location.
Can be any legal HTML.
Compare to <% Response.Write() %> in an
ASPX page.
10
Script in Action
Page in Chrome
11
Things to notice

There was no compile step.

JavaScript is an interpretative language.


Each statement is processed by the
interpreter as it is encountered.
A JavaScript interpreter is included in the
browser.

All modern browsers support JavaScript.
12
Page in Internet Explorer
13
Page in Internet Explorer
14
Page in Internet Explorer
15
Turning Off Protection from Scripts

In Internet Explorer,



Tools > Internet Options
“Advanced” tab
“Security” section


Allow active content to run in files on My Computer.
“Browsing” section

Uncheck Disable script debugging (Internet Explorer)


This will result in a lot of error messages from real web sites
such as Blackboard.
You will probably want to reset the property when not
working with Javascript.
16
Some Dynamic Content

Let's add some code to the script to
provide dynamic output.

Different each time the page is viewed.
<script language="JavaScript" type="text/javascript">
document.write("Hello, JavaScript!<br/>");
now = new Date();
document.write("It is now " + now + "<br />" );
</script>
17
Script in Action
18
Things to notice
<script language="JavaScript" type="text/javascript">
document.write("Hello, world!<br/>");
now = new Date();
document.write("It is now " + now + "<br />");
</script>
Variable assigned without
being declared.
Date concatenated to a string
JavaScript is a loosly typed language.
19
JavaScript Functions


Complex scripts embedded in a page
body make the page hard to read.
Define a JavaScript function.


Invoke the function where needed.
Functions can be defined in a script
within the page head.

Not executed until called.
20
A JavaScript Function
JavaScript Function in Action
22
Function Output in Context

Output from the function call is rendered at
the point of the call.
<body>
<div>
This line is before the script that calls the function.<br />
<script language="JavaScript" type="text/javascript">
say_hello();
</script>
This line is after the script that calls the function.<br />
</div>
</body>
23
Function Output in Context
24
Scripts in Separate Files

Scripts can be put into a separate file.




Avoid complicating the html file with extensive
script code.
Functions can be called from various pages.


Must be in the form of functions.
No <script> tags.
Each HTML page must identify any external script
files that it uses.
Compare to CSS.
25
Using an External Script File

In Visual Studio, create a new "JScript" file.
JScript is Microsoft's name for JavaScript.
26
Using an External Script File

Paste in the say_hello() function.

Save file on desktop as say_hello.js


Same directory as the html file.
Modify hello.html to refer to the external
script.
27
Using an External Script File
28
Identifying the External File
Note: the </script> tag is required.
/ in the <script > tag won't work.
29
External Script in Action
End of Section
30
Debugging JavaScript



We can use the Visual Studio debugger for JavaScript if
the script is used by an ASPX page.
 Same as debugging C# code!
Make Internet Explorer your default browser.
Enable script debugging.

In IE, Tools > Internet Options

Advanced tab

Browsing

Uncheck “Disable Script Debugging (Internet Explorer)”
31
Enable Script Debugging
32
Debugging JavaScript

Create new empty ASP.NET web site,
javascript_test
Add new Web Form, Default.aspx
33
Debugging JavaScript

Website -> Add Existing Item


Select All Files (*.*)
JScript Script File, say_hello.js
34
say_hello.js
function say_hello() {
document.write("This is a JavaScript function!<br/>");
now = new Date();
document.write("It is now " + now + "<br />");
document.write("End of JavaScript function<br />");
}
35
Default.aspx
Copy <div> from hello.html into Default.aspx
Inside <form> tags
Copy the script from the <head> into the
<head> of Default.aspx
36
default.aspx
Build and run.
37
Run the App
38
Set a JavaScript Breakpoint
Run the app again.
39
JavaScript Stopped at Breakpoint
Click here to single step.
Can also use the Debug menu or press F10.
40
Viewing a JavaScript Variable
Hover cursor over a variable to see its value as a tooltip.
41
Using QuickWatch
Right click on variable and select QuickWatch
42
QuickWatch
43
Script Finished
End of Section
44
A JavaScript Event Handler


JavaScript functions are often executed
when events occur on the browser.
Examples:




Page loaded by browser
Mouse click
Key pressed
Control gets the focus


... many more
Don't confuse these events with server-side events
which we handle with C# code on the server.
45
An Event Handler
Delete form contents
46
Event Handler in Action
47
Things to Notice
<body onload="say_hello();">

Following the =, in quotes, is
a JavaScript script.

Anything that can appear inside
<script></script> can appear here.


Typically just a single statement.
Often a function call.
48
Responding to a Click




Demonstrate responding to a user-initiated
event, mouse click.
Also demonstrate the JavaScript alert() function.
Delete "onload" from <body>
Add an HTML button to the page.
49
Add an HTML Button
50
The JavaScript alert() Function


alert is JavaScript's answer to printf.
Pops up a box and displays a message to the
user.


Nice debugging tool.
Notice the quotes.


JavaScript permits single quotes to be embedded in
double quotes, and vice versa.
Single quotes and double quotes can be used
interchangably.
51
Initial Page
Click on Say Hello
52
Responding to a Click
53
Learning JavaScript


There are many books on JavaScript.
Get an introductory level book

Or look up a JavaScript tutorial on the Internet.

Learn the fundamentals.

We will be looking at jQuery


A JavaScript Framework
Recommended as introduction to both
JavaScript and jQuery:



JavaScript & jQuery the missing manual (Second Edition)
David Sawyer McFarland
O'Reilly, 2011
54
Assignment
Before next class:

Do the examples from this presentation
for yourself if you have not already
done so in class.
End of Presentation
55