JavaScript in Notes Domino 9
Units: 10
Duration: 2.5 classroom equivalent days
Discussion Access: 12 months

Summary Description
JavaScript is the language of choice on the web for performing tasks such as validating data and creating cool user interfaces like dialog boxes and roll-over images. Notes and Domino 9 allow the same JavaScript code to work in both a browser and a Notes client. In this course you will learn the basics of the JavaScript programming language, what it can do for you and how you can incorporate it into your Domino applications. First, you will learn the fundamental building blocks of the core JavaScript language, its syntax and how it relates to HTML. You then will become familiar with the JavaScript Object Model and how JavaScript employs object-oriented programming techniques for working with information on web pages. You will use Client-Side JavaScript objects, methods and events to create useful and interesting interfaces for your Domino web pages. Learn how to recreate Notes Client features that Domino can not port to web browsers such as dialog boxes and opening windows. Understand browser compatibility and the differences between the Notes client, Firefox browser, and Microsoft browser and how to handle them. This course is designed exclusively for Domino developers and includes many demonstrations and activities.

Audience and Prerequisites
Experienced Domino 9 developers who want to learn JavaScript.

System Requirements
A single Notes and Designer 9 client and a current web browser. Access to the Internet is required to get instructor support.

Course Modules
Module 1 - What is JavaScript?
This introductory module introduces the main concepts of the JavaScript language. You will explore why JavaScript was created, what it can do and how it can be used to enhance your Domino applications. You will also begin using JavaScript techniques to interact with the user and data on a web page.
  • Describe JavaScript
  • Describe the difference between JavaScript and Java
  • Demonstrate what can be done using JavaScript
  • Explain what JavaScript can NOT do
  • Understand JavaScript's role in HTML
  • Describe JavaScript's role in Domino applications
  • Understand Passthru HTML in Domino
  • Explore how to code JavaScript in Domino Designer
  • Use JavaScript to read values, write values and send user alerts
  • Describe how to debug your JavaScript code

Module 2 - Core JavaScript
This module describes the core JavaScript language, its syntax and its basic building blocks. As with any programming language, JavaScript has its own way of interpreting each piece of code. Understanding each code element and how JavaScript handles them is essential to being able to write JavaScript programs.
  • Describe each of the JavaScript language basic building blocks
  • Describe the data types supported by JavaScript
  • List the special characters in the JavaScript language
  • Describe functions and how to create and invoke them
  • Describe and use the various JavaScript program flow control statements
  • List the JavaScript statement and expression construction rules

Module 3 - Objects in JavaScript
This module introduces the main concepts of the JavaScript Object Model, what it was created for and how to work with it. You will learn about object properties, methods and events and how to work with them. Topics include JavaScript events in Domino Designer, the Document Object Model (DOM) and how Domino design elements are translated to the HTML document hierarchy. The JavaScript String and Array objects are also featured.
  • Define and demonstrate object properties, methods and event handlers
  • Describe the JavaScript String object, its properties and its methods
  • Describe the JavaScript Array object, its properties and its methods
  • List and describe the JavaScript events available in Domino Designer
  • Describe and use the Document Object Model (DOM)
  • Describe the HTML Hierarchy of a document and use it in JavaScript code
  • Show how Domino translates its design elements to HTML
  • Use associative names with Domino design elements

Module 4 - Client-Side JavaScript
This module takes what you have learned about Core JavaScript and Client-Side JavaScript objects to show you how to program features into your Domino web applications. You will use the built-in Client-Side JavaScript classes to manipulate the browser and its objects. Featured topics include working with windows, interacting with the current document and user inputted data, client-side input validation, and conditional processing based on the browser type and version.
  • Use JavaScript to open new windows, close windows and set focus on windows
  • Use JavaScript to read user input values from the five HTML input types
  • Use JavaScript for client-side input validation
  • Validate dates, email address and character input
  • Use Regular Expressions to validate data
  • Use conditional JavaScript code based on the client type, browser type and version

Module 5 - Dynamic Pages
This module shows how to program dynamic web page content into your Domino web applications. Learn to manipulate the browser and how it presents information to your users. Featured topics include working with rollover image changes, working with cookies, adding new values to keyword lists, and working with layers and framesets. Additionally, you will learn how to use JavaScript libraries to store and reuse common code.
  • Change a page to edit or read mode
  • Control the display of image source files and create rollover images
  • Work with relative URLs
  • Add new values to select input lists
  • Use Dynamic HTML to manipulate layers and control which layer is visible
  • Use JavaScript with frames and framesets
  • Use JavaScript Libraries to create reusable code
  • Use JavaScript to read and write values in cookies
  • Understand how JSON and AJAX can be used to create interactive and efficient web interfaces