Course Description Course Title:Lotus Domino Designer 8: JavaScript Course Code:DDJS8 Product:Lotus Notes/Domino R8.0.1 Provider:wareSource Duration:3 days Topics/Pages:23 topics / 430 pages Price (US dollars):$65 per user Description During 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. Course goals This course will: build 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. Audience 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 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. 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: Domino Designer 8: Basic Notes Applications provides the base knowledge for this additional training: Client Track 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. Language Track. These languages apply to both Notes and browser clients: Learn 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. Duration This course is sold as a 3-day course, but there is much more material than can be covered in that duration. Course design 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. Outline Topic 1: Browser Objects and JavaScript Preview of the Domino/browser exchange Programming 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 Topic 2: Coding JavaScript in Domino Designer HTML page structure Code 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 Topic 3: Basic Language Elements Walkthrough: Basic elements Simple 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 Topic 4: Branching and Looping Structures If structure Exercise: If structure Boolean operators Exercise: Boolean operator Simple if using ? Switch While structure Do while structure For structure Break Continue Exercise: Looping structures Topic 5: Custom Functions Function statement Function 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 Topic 6: JavaScript Objects Date object Browser 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 Topic 7: Arrays Array attributes How 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 Topic 8: Browser Object Model Browser object hierarchy Browser 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 Topic 9: Browser Event Handlers Possible events Event 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 Topic 10: Field Access HTML field data type Text 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 Topic 11: Field Input Translation and Validation Field-level help Field 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 Topic 12: Form Validation Field-level event handler caveats "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 Topic 13: Window Object Open window using HTML Open 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 Topic 14: Frame Object Frames are windows Frameset 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 Topic 15: Location Object Location is where you are Database 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 Topic 16: Browser State Persistence Who is the user? What 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 Topic 17: Dynamic HTML DOM Level 1 enhancements DOM 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 Topic 18: JavaScript and Java Applets Java and Domino Import/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 Topic 19: Domino Views $$ViewTemplateDefault as redirector JavaScript 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 Topic 20: JavaScript and ActiveX Controls ActiveX and security Example 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 Topic 21: Asynchronous JavaScript and XML AJAX rediscovered GET 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 Topic 22: Browser Compatibility What browsers are being used? The 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 Topic 23: JavaScript Resources JScript reference ECMAScript-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 Contact Us Privacy Policy ©2010 wareSource
This course is sold as a 3-day course, but there is much more material than can be covered in that duration.
Course design 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. Outline