| Lotus Training  Overview 
 
 
TDuring this course you will use Domino Designer 8 to add JavaScript to Domino applications that are accessed by browsers. The course covers the basic language elements of JavaScript, how to add scripts using Domino Designer, and how to exploit the various browser and language object event handlers. There is a strong emphasis on the browser object model and how it relates to the Domino object model. The course also touches on how to incorporate Dynamic HTML, Java Applets, LiveConnect, ActiveX controls, and AJAX into web-based applications.
			
 Lotus Training  Course goals
 
 In this course, you will learn how to:
This course will teach you how to:
 Lotus Training  Audiencebuild a fundamental knowledge of JavaScript as it is applied in Domino applications used by modern browsers
provide practical programming and debugging experience to ensure a foundation of JavaScript skills
understand the relationship between JavaScript and Domino data types
clarify the use of the various object models, including the Domino Object Model, the original browser Document Object Model, JavaScript language objects, and the newer W3C Level 1 Document Object Model
use JavaScript to code the Field, Button, and Form event handlers
build a practical understanding of data validation and error trapping
use DHTML to create interactive web pages
control Java applets using LiveConnect
remotely access Domino objects via CORBA
script ActiveX objects
use AJAX to request and process Domino-generated XML and JSON
develop practical ways to detect which browser is being used and how to code appropriately.
 
 This course assumes that you have:
thorough knowledge of the Domino Designer 8 development environment, including Form, Page, View, Frameset, and Agent design, as well as how to set properties and set the ACL
 This course is part of a series of Domino Designer 8 training courses. Follow these paths to master all aspects of developing applications using Domino Designer:knowledge of Web technologies, including servers, browsers, HTML, Cascading Style Sheets, and some basic JavaScript (or other browser scripting language) and awareness of browser object properties and methods
basic understanding of LotusScript and the various Notes product objects
because this course does not review any aspects of the non-JavaScript aspects of developing applications with Domino Designer, mastery of the topics covered in these courses:
Lotus Domino Designer 8: Basic Notes Applications
Lotus Domino Designer 8: Basic Browser Applications courses.
 
 
   
 Domino Designer 8: Basic Notes Applications provides the base knowledge for this additional training:
 
 Client Track
 
 
 
Language Track. These languages apply to both Notes and browser clients:Configure Domino to use DB2 as a database engine and build applications that access relational data, DB2 for Domino 8 Administrators and Developers.
Specialize in programming Notes applications to respond to built-in user interface features, Domino Designer 8: Special Notes Features.
Convert an application written for Notes clients to be used in browsers, Domino Designer 8: Basic Browser Applications.
Provide data to cutting-edge Web applications, Domino Designer 8: Web Agents and Web Services.
 
 
 
Course designLearn sophisticated application techniques that fully exploit the formula language in Domino Designer 8: Formula Language.
Develop sophisticated applications and Agents with LotusScript in Domino Designer 8: LotusScript.
Add powerful client-side scripting to browser applications in Domino Designer 8: JavaScript.
 
 
 
The course takes a task-oriented approach, during which you will work with JavaScript code that will have immediate application to your Domino applications.
Because this course instructs you how JavaScript works with respect to Domino, you will be able to leverage the many JavaScript resources available to you as a developer.
 Lotus Training  Course duration
 
 
 
				3 days
				
		
 Lotus Training  Course outline
 
 
    Topic 1: Browser Objects and JavaScript 
 
   Preview of the Domino/browser
    exchangeTopic 2: Coding JavaScript
  in Domino DesignerProgramming challenge
 The history of client-side scripting
 Brief history of browser object models
 Launch browser from Lotus Notes
 Browser Object Model (DOM Level 0)
 JavaScript vis-a-vis browser objects
 Mozillas DOM and JavaScript object Inspector
 Domino as a Web server
 The Domino
    "Web Server"
 Third-party Web server
    plug-ins
 Exercise: Create project
    databases
 
 
 
 
   HTML page structureTopic 3: Basic Language ElementsCode
    your own HTML
 Other sources of
    HTML
 Getting JavaScript into the HEAD
    tag
 Exercise: JavaScript
    function
 Getting JavaScript onto an HTML
    page
 Exercise: Create a button
 Troubleshooting button problems
 JavaScript libraries
 JS files on
    Pages
 JavaScript library
    security
 Syntax checking
 Runtime error reporting
 Microsoft
    Script Editor
 Mozilla JavaScript
    Debugger
 Commercial debuggers
 Home grown debugging
 
 
 
 
   Walkthrough: Basic elementsTopic 4: Branching and
  Looping StructuresSimple data types
 Built-in
    functions
 var keyword and variable
    scope
 Simple dialog boxes
 Commented code
 Exercise: Dialog
    boxes
 try/catch statement
 throw statement
 Custom error
    object
 Garbage
  collection
 
 
 
 
   If structureTopic 5: Custom FunctionsExercise:
    If structure
 Boolean operators
 Exercise: Boolean operator
 Simple
    if using ?
 Switch
 While structure
 Do while
    structure
 For structure
 Break
 Continue
 Exercise: Looping structures
 
 
 
 
   Function statementTopic 6: JavaScript ObjectsFunction arguments
 How to call a
    function
 Where to call a function
 Return a value from a function
 Exercise: Function to test number
 Passing argument by value
 Recursive functions
 Conversion of
    @Commands to JavaScript functions
 
 
 
 
   Date objectTopic 7:
  ArraysBrowser or
    Domino Server time?
 Create date
    object
 Domino-acceptable date
    entry
 Exercise: Date object
 Math object
 Number
    object
 String object
 String object parsing methods
 Regular expressions
 Simple
    examples
 Valid number
 Intermediate example: Replace
 Advanced example: Patterns and literals
 Exercise: Fix URL function
 RegExp
    (regular expression) object
 Screen
    object
 Custom objects
 forin statement
 with
    statement
 delete operator
 Custom object prototyping
 Example:
    Custom class
 Example: Add method to JavaScript
    object
 Enumerator object
 Image object
 
 
 
 
   Array attributesTopic 8:
  Browser Object ModelHow to
    declare an array
 Create array from
    @DbColumn
 Number of elements
 Append elements
 Read one
    element
 Read all elements
 Out-of-bound errors
 Copy entire
    array
 Array object methods
 Delete element
 Find values in an
    array
 "Multi-dimension" arrays
 Associative arrays
 Exercise: Parse
    URL command string
 Parse URL command string
    using formula
 Unique array
    elements
 Object Literal
 Nested Literals
 
 
 
 
   Browser object hierarchyTopic 9: Browser Event
  HandlersBrowser object browser
 Table of
    browser objects
 Traverse the
    hierarchy
 Example: Access Form
    object
 Example: Access Field
    object
 Chaining object
    references
 this keyword
 self keyword
 Help with the Browser
    Object Model
 Exercise: Accessing a Field
    object
 Browser object and Domino object
    interaction
 Example: Form
    processing
 Browser object to Domino object
    limitations
 
 
 
 
   Possible eventsTopic 10: Field AccessEvent
    handler basics
 Commonly-coded
    events
 Walkthrough: Investigate event
    handlers
 Capture key presses
 Example 1: Capture key presses
 Example 2: Capture ESC and double-click
 Event handler registration
 this
    keyword
 Object event default
    actions
 Coding the javascript:
    pseudo-protocol
 Coding javascript: in a
    formula
 
 
 
 
   HTML field data typeTopic 11: Field Input Translation and ValidationText field access
 with
    statement
 JavaScript access to Computed/Hidden
    Fields in Edit mode
 <INPUT> tag and
    Fields
 JavaScript access to Computed/Hidden
    Fields in Read mode
 Parsing a multi-value Field
    into an array
 <SELECT> field
    access
 Select an option
 Add new option to a select list
 Remove option
 Radio
    Button
 Checkbox
 Select all check boxes
 Exercise:
    Accessing fields
 Exercise: Searching from a
    Page
 Rich text values
 
 
 
 
   Field-level help Topic 12: Form
  ValidationField
    translation
 Field validation
 Test data type
 Validate for
    number
 Test for NaN
 Test for "null" and "undefined" and ""
 Validate for file attachment name
 onblur, alert, and focus interactions
 Select field validation
 Radio and
    check box validation
 String format
    validation
 Date validation with
    JavaScript
 Handling leap years
 Forcing valid date entries
 Field
    computation
 When you must use Server-side input
    translation/validation
 Example: Server-side
    input validation
 Date validation via
    @Functions
 Exercise: Recalc using
    JavaScript
 
 
 
 
   Field-level event handler caveatsTopic 13: Window Object"Object is not defined" error
 onsubmit event handler
 Keep the
    <FORM> tag compact
 Conditionally call
    form.submit()
 Exercise: Form
    validation
 Hybrid Form
    validation
 Ensure just one
    submission
 window.onerror event
    handler
 
 
 
 
   Open window using HTMLTopic 14: Frame ObjectOpen window using JavaScript
 Hybrid HTML Link/JavaScript link
 Window features
 Referring to
    windows
 Cross-domain script security
    restriction
 Focus on a window
 Print window
 Write to
    window
 Resize, move window
 Close a window
 Window opener
    property
 Exercise: Help window
 Custom dialog boxes
 Simulating
    @Picklist using standard window.open
 Simulating
    @Dialogbox with a modal dialog box
 Address book
    lookup dialog box
 setTimeout
    method
 window.find
 clipboardData object
 
 
 
 
   Frames are windowsTopic 15: Location ObjectFrameset basics
 Support browsers
    that dont support Frames
 Example
    frameset
 Targeting frame content using
    HTML
 Dynamic frames from
    JavaScript
 Call a function from another
    frame
 Exercise: Help frame
 Example: On-Form help frame
 IFrame
    Object
 
 
 
 
   Location is where you areTopic 16: Browser State
  PersistenceDatabase properties
 Location
    properties
 Location object versus CGI
    variable
 Set location to the current
    database
 URL encoding
 Setting the location
 Replacing the
    location
 Example: ESC and
    Double-click
 Refresh/Reload a
    window
 Working with frame
    locations
 Redirection
 Redirection to user mail
 Redirect
    to SSL connection
 Manual redirection: "Menu
    Options"
 Menu Option 1: Select with
    button
 Menu Option 2: Select w/o
    button
 Exercise: Page chooser
 Prevent from being framed
 Frame
    your pages
 Invalid URLs and buffer
    overflows
 
 
 
 
   Who is the user?Topic 17: Dynamic HTMLWhat is
    a cookie?
 Privacy issues
 Set cookie using META tag
 Read
    cookie using CGI variable
 Weaknesses of
    HTTP/HTML methods
 Set cookie using
    JavaScript
 Example: Set cookie
 Get cookie using JavaScript
 Set
    cookie using formula
 Parse cookie
    values
 Delete cookie
 Exercise: Default Field values using cookie
 Profile documents
 Profile
    documents and security
 Create Profile document
 Read from Profile document
    Fields
 Example: Profile
    document
 Behaviors and data
    persistence
 Userdata and IE
    security
 Example:
  Userdata
 
 
 
 
   DOM Level 1 enhancementsTopic 18: JavaScript and Java
  AppletsDOM Level 1 hierarchy
 Element
    nodes
 Browsing the node
    hierarchy
 Mozillas DOM and JavaScript object
    Inspector
 Instantiate a node
    object
 Example: Instantiate Subject
    Field
 Get and set Field value
 Set Field style properties
 Element
    object shortcut
 TextNode
    objects
 Node event handlers
 DHTML examples
 Example: Change
    style sheets on Form load
 Example: Change style
    sheets on the fly
 Example: Reset style on
    elements
 Example: Hide When
 Example: Expand all sections
 Example: Disable element
 Exercise:
    Disable element
 Tables
 Element positioning
 Date
    picker
 Field input mask behavior
 
 
 
 
   Java and Domino Topic 19:
  Domino ViewsImport/embed single file Java applet
 Embed applet with parameters
 Import/embed multiple file applet with
    parameters
 Applet parameters
 Shared Applet Resource
 LiveConnect
 Applet access to
    JavaScript objects
 Date picker Java
    applet
 Domino applets
 Exercise: Editor Java applet
 lotus.domino.AppletBase applet
 How
    the lotus.domino.AppletBase applet works
 Domino
    Server settings
 Client settings
 How to embed the lotus.domino.AppletBase applet
 Accessing Domino objects via
    JavaScript
 Java Console
 Common errors with
  lotus.domino.AppletBase
 
 
 
 
   $$ViewTemplateDefault as redirectorTopic 20: JavaScript and ActiveX
  ControlsJavaScript function calls in column formulas
 Exercise: JavaScript in column formula
 HTML check boxes in Views
 Document
    processing in applet View
 Alphabetic
    index
 Search from
  View
 
 
 
 
   ActiveX and securityTopic 21: Asynchronous
  JavaScript and XMLExample 1: Shockwave not scripted
 Example 2: Flash - scripted
 Example 3: Windows Media Player
 Example 4: Calendar control
 Example 5: Run methods in embedded Editor
  control
 
 
 
 
   AJAX rediscoveredTopic 22: Browser
  CompatibilityGET
    data from Domino
 POST data to
    Domino
 XMLHttpRequest object
 XMLHttpRequest object example
 XMLHttpRequest and security
 Limit
    and control data from view
 JavaScript Object
    Notation (JSON)
 XML document transformation
 Other examples of using Domino XML
    output
 
 
 
 
   What browsers are being used?Topic 23: JavaScript
  ResourcesThe issues
 Code
    strategies
 Server-side branching with
    @BrowserInfo
 @GetHTTPHeader
 Client-side browser type/version detection
 Detect browser type/version using CGI variable
 Hide JavaScript from non-compliant browsers
 JavaScript version detection
 Client-side object detection
 Case
    Study: "Layers"
 Programmatic access to
    "layers"
 Cross-browser coding
 The problem with either type of browser detection with
    JavaScript
 
 
 
 
   JScript referenceECMAScript-262 reference
 Browser
    object models (DOM)
 JavaScript example
    code
 DHTML examples
 Java applets
 ActiveX
    controls
 AJAX
 JavaScript toolkits/function
    libraries/frameworks
 Domino AJAX
    examples
 JSON
 
 |