javascript dom and css what we should learn in this lesson –what is dom-the javascript document...

23
JavaScript DOM and CSS • What we should learn in this lesson – What is DOM-The JavaScript Document Object Module, its architectures, methods .. – Dynamic Website structure: Placeholders and separated JavaScript files – Using DOM method to generate HTML structures – Formatting with CSS

Upload: reanna-bumstead

Post on 16-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

JavaScript DOM and CSS

• What we should learn in this lesson– What is DOM-The JavaScript Document Object

Module, its architectures, methods .. – Dynamic Website structure: Placeholders and

separated JavaScript files– Using DOM method to generate HTML

structures– Formatting with CSS

Page 2: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

One JavaScript DOM exmple

• Why the following codes works?– <img src="http://.../~zhaoza/monkey.gif"

name="the_image"><br>document.the_image.src=‘ http://www.sbu.ac.uk/ ~zhaoza/sun.gif ';

– document.writeln(“<h1>test</h1>”);

• DOM is the way JavaScript describes Web pages, and it lies at the heart of all JavaScript programming

Page 3: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

The JavaScript Document Object Model

• JavaScript is an Object-oriented programming language. The main idea of OOP is that information is organized in terms of objects. JavaScript is wonderful because it comes with a built-in library of objects. For example, a window is an object.

• Object propertiesObjects have properties that describe them. For example the windows object has properties such as its name, the words in its status bar, the URL of the document inside the window, and the window’s document.

• Objects methodsIn addition to properties, objects also have methods. Methods are the actions an object knows how to take. For example, Windows know how to open other Windows: window.open("URL,""name,""features"). This tells JavaScript to use the open method of the Window object to open a new window. For the windows object, we already learn its methods such as: open(), alert(), prompt(), confirm() etc. Here introduces two more, focus and blur, The focus method moves a window that's behind other windows to the front. The blur method does the reverse — it moves a window behind other windows.

Page 4: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

• One neat thing about objects is that the properties of an object can be objects too. For example, windows have a property called document that refers to the actual HTML document in the window. This document property is itself an object that has properties and methods of its own. We saw an example of this when we talked about image swapping. Go back to the last lesson, we learned that you can do an image swap like this: <a href="#" onMouseOver="window.document.the_image.src='button_d.gif';">change</a>That long string, window.document.the_image.src='button_d.gif', translates into: "Find the document property of the window, find the_image property of the document, find the src property of the_image, and set it to button_d.gif.“

• It may seem like a lot of detail to keep track of. The JavaScript Document Object Model describes a small hierarchy of objects. Here it is:

Page 5: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website
Page 6: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

JavaScript’s objects

• The top box of the diagram represents your browser window. Following the line from that box down, you'll see it connects to seven more boxes. These are the properties of the browser window.

• The sixth box here, "document," represents the contents of your window. If you follow the little line leading out of the document box, you'll see it connects to six more boxes. These are the properties of the document object.

Page 7: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Introduction to DOM

• The Document Object Model (DOM) is the model that describes how all elements in an HTML page, like input fields, images, paragraphs etc., are related to the topmost structure: the document itself. By calling the element by its proper DOM name, we can influence it.

• The purpose of the DOM:– It has been developed by the W3C to provide any programming

language with access to each part of an XML document. • What are the nodes of DOM• How you can walk the DOM tree from node to node• How to get a specific node and how to change its value

or attributes. • How to create nodes yourself, the ultimate purpose of

the new DOM.

Page 8: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

What are the nodes of DOM• In the Level 1 DOM, each object, whatever

it may be exactly, is a Node. So if you do<P>This is a paragraph</P> you have created two nodes: an element P and a text node with content 'This is a paragraph'. The text node is inside the element, so it is considered a child node of the element. Conversely, the element is considered the parent node of the text node.

• If you do<P>This is a <B>paragraph</B></P> the element node P has two children, one of which has a child of its own:

• The element node P also has its own parent, this is usually the document, sometimes another element like a DIV. So the whole HTML document can be seen as a tree consisting of a lot of nodes, most of them having child nodes (and these, too, can have children).

Page 9: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

DOM tree structure

Page 10: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Walking through the DOM tree• Knowing the exact structure of the DOM tree, you can walk through it

in search of the element you want to influence. For instance, assume the element node P has been stored in the variable x Then if we want to access the BODY we dox.parentNode We take the parent node of x and do something with it. To reach the B node:x.childNodes[1] childNodes is an array that contains all children of the node x. Of course numbering starts at zero, so childNodes[0] is the text node 'This is a' and childNodes[1] is the element node B.

– Two special cases: x.firstChild accesses the first child of x (the text node), while x.lastChild accesses the last child of x (the element node B).

• So supposing the P is the first child of the body, which in turn is the first child of the document, you can reach the element node B by either of these commands:

• document.firstChild.firstChild.lastChild; • document.firstChild.childNodes[0].lastChild; • document.firstChild.childNodes[0].childNodes[1];

Page 11: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Dynamic Website structure: Placeholders and separated JavaScript files

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html> <head> <title>AJAX Foundations:

JavaScript and DOM</title> <script type="text/javascript"

src="jsdom.js"></script> </head> <body> I love you! </body></html>

// declaring new variablesvar date = new Date();var hour = date.getHours();// demonstrating the if statementif (hour >= 22 || hour <= 5) document.write("Goodnight,

world!");else document.write("Hello, world!");

Page 12: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Dynamic Website structure: Placeholders and separated JavaScript files

Morejsdom.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html> <head> <title>AJAX Foundations: More JavaScript

and DOM</title> <script type="text/javascript"

src="morejsdom.js"></script> </head> <body onload="process()"> Hello Dude! Here's a cool list of colors for

you: <br /> <div id="myDivElement" /> </body></html>

Morejsdos.js

function process(){ // Create the HTML code var string; string = "<ul>" + "<li>Black</li>" + "<li>Orange</li>" + "<li>Pink</li>" + "</ul>"; // obtain a reference to the <div> element on

the page myDiv =

document.getElementById("myDivElement");

// add content to the <div> element myDiv.innerHTML = string;}

Page 13: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Dynamic Website structure: Placeholders and separated JavaScript files

• Access the named <div> element programmatically from the JavaScript function.

• Having the JavaScript code execute after the HTML template is loaded, so you can access the <div> element (no HTML elements are accessible from JavaScript code that executes referenced from the <head> element). You will do that by calling JavaScript code from the <body> element's onload event.

• Group the JavaScript code in a function for easier code handling.

Page 14: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Using DOM method to generate HTML structures

Evenmorejs.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html> <head> <title>AJAX Foundations: Even More JavaScript and DOM</title> <script type="text/javascript" src="evenmorejsdom.js"></script> </head> <body onload="process()"> <div id="myDivElement" /> </body></html>

Evenmoreisdos.js:

function process(){ // create the first text node oHello = document.createTextNode ("Hello Dude! Here's a cool list of colors for you:");

// create the <ul> element oUl = document.createElement("ul")

// create the first <ui> element and add a text node to it oLiBlack = document.createElement("li"); oBlack = document.createTextNode("Black"); oLiBlack.appendChild(oBlack);

// create the second <ui> element and add a text node to it oLiOrange = document.createElement("li"); oOrange = document.createTextNode("Orange"); oLiOrange.appendChild(oOrange);

// create the third <ui> element and add a text node to it oLiPink = document.createElement("li"); oPink = document.createTextNode("Pink"); oLiPink.appendChild(oPink);

// add the <ui> elements as children to the <ul> element oUl.appendChild(oLiBlack); oUl.appendChild(oLiOrange); oUl.appendChild(oLiPink);

// obtain a reference to the <div> element on the page myDiv = document.getElementById("myDivElement");

// add content to the <div> element myDiv.appendChild(oHello); myDiv.appendChild(oUl);}

Page 15: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Formatting with CSS<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html> <head> <title>AJAX Foundations: CSS</title> <script type="text/javascript" src="csstest.js"></script> <link href="styles.css" type="text/css" rel="stylesheet"/> </head> <body> <table id="table"> <tr> <th id="tableHead"> Product Name </th> </tr> <tr> <td id="tableFirstLine"> Airplane </td> </tr> <tr> <td id="tableSecondLine"> Big car </td> </tr> </table> <br /> <input type="button" value="Set Style 1" onclick="setStyle1();" /> <input type="button" value="Set Style 2" onclick="setStyle2();" /> </body></html>

Page 16: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Formatting with CSS/ Change table style to style 1function setStyle1(){ // obtain references to HTML elements oTable = document.getElementById("table"); oTableHead = document.getElementById("tableHead"); oTableFirstLine = document.getElementById("tableFirstLine"); oTableSecondLine = document.getElementById("tableSecondLine"); // set styles oTable.className = "Table1"; oTableHead.className = "TableHead1"; oTableFirstLine.className = "TableContent1"; oTableSecondLine.className = "TableContent1";}

// Change table style to style 2function setStyle2(){ // obtain references to HTML elements oTable = document.getElementById("table"); oTableHead = document.getElementById("tableHead"); oTableFirstLine = document.getElementById("tableFirstLine"); oTableSecondLine = document.getElementById("tableSecondLine"); // set styles oTable.className = "Table2"; oTableHead.className = "TableHead2"; oTableFirstLine.className = "TableContent2"; oTableSecondLine.className = "TableContent2";}

.Table1{ border: DarkGreen 1px solid; background-color: LightGreen;}.TableHead1{ font-family: Verdana, Arial; font-weight: bold; font-size: 10pt;} .TableContent1{ font-family: Verdana, Arial; font-size: 10pt; }

.Table2{ border: DarkBlue 1px solid; background-color: LightBlue;}.TableHead2{ font-family: Verdana, Arial; font-weight: bold; font-size: 10pt;} .TableContent2{ font-family: Verdana, Arial; font-size: 10pt; }

Page 17: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Communicating between Windows <html><head><title>Getting and using a window reference</title><script language="JavaScript"><!-- hide me

// open a new window, In order to communicate with a window using// JavaScript, you need a reference to that window. var new_window =

window.open("hello.html","html_name","width=200,height=200");

//This opens a little window and assigns the variable new_window //to refer to it. And then blur the new windownew_window.blur();

// show me --></script></head><body><h1>A new window has been opened and moved to the background.</h1><a href="#" onMouseOver="new_window.focus();">Bring it forward</a><br><a href="#" onMouseOver="new_window.blur();">Put it backward</a><br>

</body></html>

Page 18: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Messing with the DOM in other Windows

<html><head><title>Image Remote</title>

<script language="JavaScript"><!-- hide me//opens a new window and assigns the variable display_window to that window var display_window = window.open("slide_show_main.html","display_window");window.focus();

// stop hiding --></script></head><body><a href="#" onClick="display_window.document.main_image.src= 'sky.jpg';return false;"> <img

src="sky.jpgf"></a><a href="#" onClick="display_window.document.main_image.src= 'sun.jpg';return false;"> <img

src="sun.jpg"></a><br><a href="#" onClick="display_window.document.main_image.src= 'thau.jpg';return false;"> <img

src="thau.jpg"></a><a href="#" onClick="display_window.document.main_image.src= 'monkey.jpg';return false;"><img

src="monkey.jpg"></a><br></body>

</html>

Page 19: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

slide_show_main.html

<html><head><title>Remote Image Swapping </title></head>

<body><div align="center"><img src="sky.jpg"

name="main_image" height="400" width="400">

</div></body></html>

Page 20: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Getting Framed• In JavaScript, Frames are treated just like windows• Main.html:

<html><head><title>Using Frames with JavaScript</title></head>

<frameset rows="25%,*"><frame src="frames_example_controls.html"

name="control_frame"><frame src="blank.html" name="target_frame"></frameset></html>

• Frames_example_controls.html:<html><head><title>Frames Example

Controls</title></head><body>

<a href="#" onClick="top.target_frame.document.writeln('Monkey do!

<br>');">Monkey see</a>

</body></html>

Page 21: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Some other JavaScript Syntax• Loops

– While loops:while (some test is true) { do the stuff inside the curly braces }

– For loops:for (initial value; test; increment)

{ do this stuff; } • Arrays- Arrays are lists.

– An example to create an array of colors: var colors = new Array("red","blue","green");

good thing about arrays is that elements of an array can be accessed by number. The first element is number 0 and can be accessed like this: var the_element = colors[0]; After you execute this line of JavaScript, the variable the_element will hold the string "red."

Page 22: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

An example for Loops and Arrays(slide show)

<html><head><title>URL Slideshow</title>

<script language = "JavaScript"><!-- hide me

var url_names = new Array("hits.org","awaken.org","bianca.com");var a_url;

for (loop = 0; loop < url_names.length; loop++){

// make the name of a url, for example http://www.hits.orga_url = "http://www." + url_names[loop];

// open a windowvar new_window=open(a_url,"new_window","width=300,height=300");

// wait for the clickalert("Hit OK for the next site");

}// show me --></script></head></html>

Page 23: JavaScript DOM and CSS What we should learn in this lesson –What is DOM-The JavaScript Document Object Module, its architectures, methods.. –Dynamic Website

Functions(Timer.html)<html> <head> <title>Function with No Parameters</title> <script langauge="JavaScript"> <!-- hide me

function announceTime() { //get the date, the hour, minutes, and seconds var the_date = new Date(); var the_hour = the_date.getHours(); var the_minute = the_date.getMinutes(); var the_second = the_date.getSeconds(); //put together the string and alert with it var the_time = the_hour + ":" + the_minute + ":" + the_second; alert("The time is now: " + the_time); }

// show me --> </script> </head> <body>

<a href="#" onClick="announceTime(); return false;">time!</a> </body> </html>