throbber
Worlds Best
`
`A
`
`% The Most
`Complete
`Reference
`
`
`
`Create dynamic Web pages using
`]avaSlc1<ipt without being a
`
`pI‘OgI'3ITlITlCI'
`
`Learn how to use JavaScript to
`
`validate user input, reduce server
`
`processing, and create live Web pages
`
`X with interactive content
`
`on-:; —
`
`C
`
`I l
`
`Selling Series!
`U5.,,.._.._._<,_.‘_.<.._,_r,-_,_4*_—.;—.._.__—
`
`
`ELam \‘
` AVASCR1PT
`
`.
`_
`CD—ROM contains all of the JavaScript
`and Java” examples from the book, as
`
`well as bonus code and examples
`
`Mark C. Reynolds and
`Andrew Wooldridge
`
`“E69
`
`-4
`
`,s
`
`c,AQI1<:.J.DC,_ Exhibit 10,22
`
`Apple Inc. Exhibit 1022
`
`Apple Inc. Exhibit 1022
`
`

`
`5..
`<
`
`U
`JAVASCR1PT
`
`7
`
`V
`
`>
`
`E
`
`N N 7
`
`_
`in 77
`
`_
`
`_
`V 7“
`
`lXtvlIyugmdC1ale?I9glma3<0bj¢:h
`N
`V
`V
`V
`
`,
`
`V
`
`in. |
`
`__ _
`
`_
`
`,
`
`7
`
`_
`
`,_ ‘
`;
`i
`
`wmm-24
`HEIGKIEEI
`ausgmaiwyuuzvm
`
`7
`
`V
`
`'1n%tfiuwl_rfi‘
`
`IWAKW
`
`V
`
`ausg.e.ny:‘Lz.L£vu-.
`
`The secrets to unleashing thefullpower of
`
`]4WS""P’—“t)’0“"fi”ge”’I’5-'
`,
`.
`.
`.
`.
`.
`.
`Ques Sperm! Edztzon Usmg]awzScrzpt 18 your one—stop resource
`to this new open programming platform. You will understand
`the language and what it can do for special"visual effects and
`formatting, and find the advice and information you need to
`program like a pro!
`
`.:":::i-T952
`i
`ii‘.
`”0!I.1’Y0fl1*'W¢b'SIt€us¢IS
`I Usefive obJ_emto__bfingimemcfive
`elemenis to yomweb Pages
`'- Leamthe djfl.-mnce betwwdava and
`Javascript
`I Use Javascript for database access
`
`‘.
`
`‘,
`4‘
`.
`
`A team of experts guides you through all aspects of the JavaScript
`language, detailing the constructs of the language and showing
`how to implement Javascript on your Web pages. You'll learn
`expert techniques for writing Java” applets that go. along with
`JavaScript. You ll learn unique ways to use ]avaScript, including
`learning routines and examples for achieving special visual effects,
`enhancing the appearance of the browser, adding specialiiorinatting
`.
`.
`~
`'
`to the text, controlling input, and much more.,P\lt1s, lyoL1’l;l.fln<il
`‘
`valuable information on associated Web technologies, including
`Java, Visual Basic” Script, and plug—ins. With complete
`information, detailed instructions, and real—world examples,
`this is a must—have resource!
`
`Proganz
`
`“Pro
`fi0n1 Que-I
`
`Special
`
`y».
`
`A 4
`
`A‘ A
`
`\
`‘
`
`_CDl'1§0M
`me u e_s'
`° £E)lm°fh‘:‘E(J(‘)*!:’“5°"P‘ “ml la“ °XamPl€5
`, Sufi Jm Dcvcl0plm_m Kit for
`Windows’ 95 and Windows NT“
`' H0TD0G= Windows |'l'|'M1«edit0r
`‘I
`f
`alla"
`ll‘
`‘
`Wm Suplmn or m is ‘W mm
`' Paint Shop Pro: WiI)(i0WS program
`,0 mm and mnipu|,m graphics
`forweb use
`' Wmking M"d°l °fM“C'°'“““i"~* DiF€C*°'=
`Create tiles for use with the Shockwave plug—in
`,
`' And many more Netscape plug-ins!
`
`' Over 900 pages ofiidditional reference
`information about (I++, HTM L, and (XII,
`including the entire text ol‘Que’s C++ By
`lfx/mi/2/e and live chapters ()r&|(lVill1CC(.l
`rcfcreiicc information from S])L’(’I.tI[El/1.11.071
`Using H7714]..
`.S'e('0m/ I:'1Iil/"rm and Sperirll
`
`V
`
`7 K
`
`‘
`
`/
`
`|
`
`'-
`
`Q4
`
`I
`
`E:/itimz Using (XII
`53” ”a?97°7898
`llll
`lllljllgll
`ii‘
`?88?8‘l?l?Ei 8 5
`
`"
`94999
`
`
`
` New
`
`Casual
`
`Category: Cominunica
`Covers: Version 1 for
`
`\|
`
`9
`c.iue®
`
`USING JAVASORIPT
`
`Visit us on the Internet at: http://www.mcp.com/que
`
`0
`
`29236 07896
`
`6
`
`9 780789 707895
`
`Apple Inc.
`
`Exhibit 1022
`
`$49.99 USA / $67.99 CAN / £46.99 Net UK (inc ofVAT)
`ISBN 0-7897-0789-6
`
`Apple Inc. Exhibit 1022
`
`Apple Inc. Exhibit 1022
`
`

`
`USING
`AVASCRIPT
`
`Written by Mark C. Reynolds with
`
`Ray Daly • Rick Darnell • Bill Dortch
`Mona Everett • Scott! Walter • Andrew Wooldridge
`
`Apple Inc. Exhibit 1022
`
`

`
`Special Edition Using JavaScript
`Copyright© 1996 by Que® Corporation.
`
`All rights reserved. Printed in the United States of America. No part
`of this book may be used or reproduced in any form or by any
`means, or stored in a database or retrieval system, without prior
`written permission of the publisher except in the case of brief quota(cid:173)
`tions embodied in critical articles and reviews. Making copies of any
`part of this book for any purpose other than your own personal use
`is a violation of United States copyright laws. For information, ad(cid:173)
`dress Que Corporation, 201 W. 103rd Street, Indianapolis, IN, 46290.
`You may reach Que's direct sales line by calling 1-800-428-5331.
`
`Library of Congress Catalog No.: 96-68041
`
`ISBN: 0-7897-0789-6
`
`This book is sold as is, without warranty of any kind, either express
`or implied, respecting the contents of this book, including but not
`limited to implied warranties for the book's quality, performance,
`merchantability, or fitness for any particular purpose. Neither Que
`Corporation nor its dealers or distributors shall be liable to the pur(cid:173)
`chaser or any other person or entity with respect to any liability,
`loss, or damage caused or alleged to have been caused directly or
`indirectly by this book.
`
`98 97 96
`
`6 5 4 3 2 1
`
`Interpretation of the printing code: the rightmost double-digit num(cid:173)
`ber is the year of the book's printing; the rightmost single-digit
`number, the number of the book's printing. For example, a printing
`code of 96-1 shows that the first printing of the book occurred in
`1996.
`
`All terms mentioned in this book that are known to be trademarks
`or service marks have been appropriately capitalized. Que cannot
`attest to the accuracy of this information. Use of a term in this book
`should not be regarded as affecting the validity of any trademark or
`service mark.
`
`Java and other Java-based names are trademarks of Sun
`Microsystems, Inc., and refer to Sun's family of Java-branded
`technologies.
`
`Screen reproductions in this book were created using Collage Plus
`from Inner Media, Inc., Hollis, NH.
`
`Apple Inc. Exhibit 1022
`
`

`
`CHAPTER
`
`See the vairous ways JavaScript is
`making more dynamic Web sites.
`Some are so good, you'll save
`them to use over and over again.
`
`- JavaScript on the Web
`- See how simple JavaScript
`- Java$cript.pages can also be
`gadgets, - Learn the difference between
`- Scripts make great
`
`pages can be
`You will see easy-to-implement
`code that lets you add entirely
`new features to your Web site.
`
`complex
`With JavaScript you can have
`interaction between frames and
`multiple windows. It's not just for
`
`JavaScrlpt and Java
`Though the two languages share
`the same :first name, they are very
`different. Don't mistake them for
`being the same.
`
`applications
`There is no :firm definition of a
`scripting language, An examina-
`tion of several can provide some
`insights to where you can go with
`JavaScript.
`
`What Is JavaScript?
`
`by Ray Daly
`
`Remember the thrill of visiting your first Web page
`and clicking your first hyperlink to another site?
`The excitement of surfing from California to
`Maine, from Australia to Finland? This interac(cid:173)
`tive nature of the Web attracts millions of people
`to the Web every day.
`
`With JavaScript, new dynamic elements let you
`go beyond the simple click and wait. Users will
`not just read your pages but also interact with
`them. Your pages come alive for any user, even
`with the slowest Internet connection. Users will
`get quick responses because the interaction does
`not need to involve the server but can take place
`in their browser.
`
`This interaction can change your pages into an
`application. Put together a few buttons, a text
`box, and some code to produce a calculator. Or
`an editor. Or a game. Or the "killer'' JavaScript
`application that everyone wants. Users will save
`your JavaScript enhanced pages to use your
`application again and again.
`
`Apple Inc. Exhibit 1022
`
`

`
`Chapter 1 What Is JavaScript?
`
`JavaScript is a programming language that allows scripting of events, objects, and
`actions to create Internet applications. II
`
`Live Content on the WWW
`
`In building Web pages, you present information to your audience. The design and
`layout should entice them to explore your site. Your hyperlinks provide several
`predefined, but different, paths to see your information.
`
`With J avaScript, your pages come alive! Your pages respond to the requests of
`your audience beyond a simple click here or there. Many more interactive ele(cid:173)
`ments are now available for exciting design and layout. Your users are no longer
`just readers. People will interact with your documents, not just read them. Your
`users can now interact with forms, change the look and feel of your Web docu(cid:173)
`ments, and use multiple windows.
`
`Forms Explode with Information
`With JavaScript, forms are a consideration in nearly every page you design. Text
`fields and textareas can dynamically change in response to user responses. Your
`audience will look for buttons, selections, radio buttons, and checkboxes. Your
`pages will change at their touch. The following examples show you how J avaScript
`makes forms come alive:
`
`II Calculators-Where is that calculator when you need it? On your page (see
`fig. 1.1). Beyond simple arithmetic, you can do conversions in hexadecimal,
`calories, metric, and more. Expand the form and you have the unlimited
`world of spreadsheets-for example, simple tax forms, grade-point averages,
`and survey analysis.
`
`II Display time. What time is it? It's easy to show in a basic text box (see fig.
`1.2). Or how about the time anywhere in the world? Add in a little math and
`show users the elapsed time. Different math produces a countdown time.
`A little different code and you have a population explosion or national debt
`counter.
`
`Apple Inc. Exhibit 1022
`
`

`
`Live Content on the WWW
`
`11
`
`FIG.1.1
`Calculator built in to a Web
`page with JavaScript.
`
`Elle
`
`fdlt ~lew §o
`
`.,
`)1ookmarks Qptlons
`
`Postfix Notation Calculator
`
`11lis calculator uses postfix notation, and works a little differently from calculators you may have
`used. Suppose you want to add two numbers. Enter the first number. Press "Enter." Ths commits
`the first number into the calculator's memory. Then enter the second number. After that, enter the
`type of operation (such as"+") that you wish to perform
`
`FIG.1.2
`JavaScript time displays
`usually show you the local
`time.
`
`ill Feedback status. As you build JavaScript applications, there will be a lot going
`on. Your code will have loops, increment variables, and track user inputs.
`Let the users in on what's going on. Provide feedback with a numeric counter
`(see fig. 1.3). Say it "graphically" with a bar graph made of ASCII characters
`and show a status literally.
`
`FIG.1.3
`Text boxes can feed back
`status of applications to
`users numerically, with
`ASCII graphics, or verbally,
`in text boxes.
`
`Apple Inc. Exhibit 1022
`
`

`
`Chapter 1 What Is JavaScript?
`
`111 Verification. With user input, you usually want to verify the validity of the
`response. For example, if you want the response to be a number between 1
`and 10, JavaScript can verify that the user's response falls in that range. If
`not, the code can notify the user and ask again for the input (see fig. 1.4).
`Once verified, the result is submitted to the server.
`
`FIG.1.4
`Provide your users with
`instant feedback without
`waiting for a response from
`the server.
`
`111 Entertainment. Everyone wants to have fun-even when learning. You can
`convey your information as an interactive game or even as a joke (see figs.
`1.5 and 1.6). The source code is very simple (see listing 1.1).
`
`FIG.1.5
`Punchline: now you see the
`joke without the punchline
`revealed.
`
`Punchline
`
`a javascript demo by Ray Daly
`
`Why did the chicken cross the road?
`
`Apple Inc. Exhibit 1022
`
`

`
`Live Content on the WWW
`
`13
`
`FIG.1.6
`Here's the punchline,
`hidden until you are ready
`to see it.
`
`The source code in listing 1.1 is easy to modify to tell your own jokes on the Web
`without giving away the punchline.
`
`Listing 1.1 javapnch.htm Code for JavaScript Punchline
`<HTML>
`<HEAD>
`<TITLE>javascript Punchline demo by Ray Daly</TITLE>
`<SCRIPT LANGUAGE="LiveScript">
`<!--
`hide this script from some browsers
`function Punchline () {
`document.write ("<BODY BGcolor=#00EE00><P>
`•<I>To get to the other side.</P></I>") ;
`
`}
`II hidden ray.daly@mailcall.com 12/16/95-->
`</SCRIPT>
`</HEAD>
`<BODY>
`<H1>Punchline</H1>
`<H2>a javascript Punchline demo by Ray Daly</H2>
`<P>Why did the chicken cross the road?</P>
`<FORM>
`<P><INPUT TYPE="button" VALUE="Punchline" onClick=Punchline()>
`</P>
`</FORM>
`</BODY>
`</HTML>
`
`Apple Inc. Exhibit 1022
`
`

`
`Chapter 1 What Is JavaScript?
`
`Look and Feel Is An Option
`All of the elements inside the window of a browser are available in JavaScript. You
`can dynamically change some of these elements. Or you can examine the elements
`of one document and use that information to create a different document. The
`following are some examples of changing the look and feel of documents:
`
`II! Change colors. Ever get to a page where the colors nearly make you go blind?
`Give your users a choice of several color combinations of backgrounds and
`text colors. As your application displays documents, use your users' colors
`(see fig. 1.7).
`
`There are too many colors for a user to choose. Don't make them experiment; let them
`select from some good combinations you have already tested.
`
`FIG.1.7
`Sample of menu where you
`can change the background
`color.
`
`A Backg•·ound Selector in JavaScript
`
`II! Change links. Normally, users click hyper links and off they go to the site you
`specified as the URL for the hyperlink. With JavaScript, this link can change
`based on user responses. If a user indicates a preference to baseball over
`football, your code can change the hyperlink to point to the Yankees instead
`of the Cowboys.
`
`Apple Inc. Exhibit 1022
`
`

`
`Live Content on the WWW
`
`15
`
`Reformat Pages. Since J avaScript can examine all of the elements of a docu(cid:173)
`ment, you can read a document in one frame and completely reformat it in
`another.
`
`An example is HTMLAnalysis (see fig. 1.8). In the control panel at the bottom of
`the window, you specify a URL that is displayed in the left frame. The right panel is
`generated from the code activated by the REDO button. This code reads the
`HTML code of the left document and creates an entirely new document that lists
`all of the hyper links. This new document is displayed in the right frame.
`
`Listing 1.2 shows the frames for HTML Analysis.
`
`Listing 1.2 hanalysl.htm Frames for HTML Analysis
`<HTML>
`<HEAD>
`<TITLE>HTML Analysis by Ray Daly</TITLE></HEAD>
`<FRAMESET ROWS="80,300,*">
`<FRAME SRC="hanalys1.htm" NAME="control">
`<FRAME SRC="" NAME="displayhere">
`<FRAME SRC="" NAME="analysis">
`<FRAME SRC="guide.htm" NAME="guide">
`</FRAMESET>
`</HTML>
`
`Listing 1.3 shows the code for HTML Analysis.
`
`Listing 1.3 hanalys1.htm Code for HTML Analysis
`<HTML>
`<HEAD>
`<TITLE>hanalys1.htm: part of hanalysi.htm</TITLE>
`<SCRIPT Lanuguage="JavaScript">
`function doit() {
`for (i = 0; i <parent.displayhere.document.links.length; i++) {
`parent.analysis.document.write (parent.displayhere.document.links[i]
`o. + "<BR>")
`
`}
`}</SCRIPT></HEAD>
`<BODY>
`<A HREF="http://www.cris.com/-raydaly/htmljive.html" TARGET="displayhere">
`Get a page.</A>
`<FORM><INPUT TYPE="button" VALUE="Probe it" onClick="doit()"></FORM>
`</BODY>
`</HTML>
`
`Apple Inc. Exhibit 1022
`
`

`
`Chapter 1 What Is JavaScript?
`
`CAUTION
`The HTML Analysis application is not stable on all platforms. Make sure the URL is completely
`loaded prior to doing the analysis.
`
`FIG.1.8
`The URL specified in the
`top frame is displayed in
`the second frame. The third
`frame shows only the links
`from that page. Such tools
`are a great way to make
`certain pages on your site
`meet your standards.
`
`Get a page
`
`HTMLjive Info
`
`~ HTHLjive was a JSI Link of the llo"ent (Jan.24.%)
`
`HTMLjive is a HTML editor written in Javascript. It allows an intermediate lnt
`create a HTML document by simply loading a Wob page, No other programs are n
`
`Demo of HTULj i ve
`You need a Javascript compatible brovser like Netscape 2. 0 to use this ed
`Uses of HTMlj i ve
`Describes how HiMLjive simplifies creating HTML documents, Also discusses



`~.:.~lruBss.r.i.nt........,_
`
`http:/ h1v.rw. c2. Dl'g/ ...... andrei<nr/javascript/
`http: //,vr.nl. cris. com/Nraydaly/hjdeJw. shtml
`http://www. cris. com/"'raydaly/hjuses. shtll\l
`r11ail to: listserv@ro.ailcall. com
`http:/ /198. 2 32. 14 4. 18: 8080/$web,.sg. list. CO!!llEHTS. -12. 12
`riD
`.
`t
`'
`.
`'t'
`
`You can reformat pages for dramatic results. Instead of showing the entire document in a
`large frame, bring the source document into an extremely small frame. Then display your
`reformatted document in the much larger frame. If the frame with your source is small
`enough, your users won't even know what the original looked like.
`
`Tools for analysis. Analyzing tools are a very interesting derivative of refor(cid:173)
`matting documents. Instead of displaying a reformatted document, analyzing
`tools provide an analysis of a document. Tools could check such simple
`things as word counts, link counts, or other statistics. Code could even be
`written to show the tree structure of all of the objects in a document. Or you
`could write code to verify that pages meet the criteria for your corporate site.
`
`Apple Inc. Exhibit 1022
`
`

`
`Live Content on the WWW
`
`17
`
`Multiple Windows and Frames
`Netscape introduced frames and JavaScript with Navigator 2.0. You will probably
`also find yourself using another popular feature: opening multiple windows for
`browsing the Web. Microsoft Internet Explorer 3.0 also supports JavaScript,
`frames, and multiple windows. Add some J avaScript behind these new features and
`the browser becomes a kaleidoscope on the WWW. No longer are you limited to
`browsing one page at a time. Now you can view multiple documents and see a
`multifaceted view of the Internet world. The following list examines using multiple
`windows and frames:
`
`11 Alert, confirm, and prompt dialog boxes. JavaScript has its own built-in dialog
`boxes you can use in your design. Alert users to take caution (see fig. 1.9),
`confirm an action with an okay or cancel response (see fig. 1.10), or prompt
`for a text input (see fig. 1.11).
`
`FIG.1.9
`Alert box notifies the user,
`but provide no choices.
`
`FIG.1.10
`Confirm box notifies the
`user and allows him to
`cancel the action.
`
`FIG.1.11
`Prompt box lets the user
`type a response to your
`code.
`
`Ill Control windows. Beyond the built-in dialog boxes, you can create your own
`controls with custom windows. Populate them with buttons, text boxes, or
`icons to control the results in your other windows.
`
`Apple Inc. Exhibit 1022
`
`

`
`Chapter 1 What Is JavaScript?
`
`II Navigation windows. Have two, three, or more windows all opened simulta(cid:173)
`neously. As the user navigates from one, the others display various screens of
`information. For example, each window might pull in a live image from a
`different point around the globe as selected by the user. Internet Tri-Eye
`provides live views from around the world (see fig. 1.12).
`
`FIG.1.12
`Internet Tri-Eye is an
`example of a multi-window
`application and a control
`panel. Selections in one
`frame produce results in
`other frames.
`
`Eye One
`
`Eye Two
`
`Eye Three
`
`Tri-Eye Guide
`
`Desc•1ptive infonnation about the images in the 'Eyes' will be placed here and below.
`
`Interact with Other Live Objects
`Sun Micro systems and N etscape Communications introduced J avaScript. An addi(cid:173)
`tional28leading computer companies, including AOL, AT&T, Borland, Digital
`Equipment Corporation, Hewlett-Packard Corporation, and Oracle Corporation
`endorsed JavaScript. Microsoft supports JavaScript in Internet Explorer 3.0. These
`companies support JavaScript because it is an open standard object language. Sev(cid:173)
`eral companies will introduce products that incorporate J avaScript. This will allow
`even more interaction. The following products supportJavaScript:
`
`II Netscape's Live Wire. Live Wire is a visual development environment for
`creating Internet applications. This new product provides enhancements to a
`server including JavaScript. The same language that you use to make your
`pages come alive on the browser can be used to respond to requests at the
`server. Instead of writing CGI scripts in Perl, C, or some other language, use
`J avaScript.
`
`Apple Inc. Exhibit 1022
`
`

`
`Role of Scripting
`
`19
`
`1M Plug-ins. Plug-ins are software that work with Netscape's Navigator. Third(cid:173)
`party publishers such as Adobe, MacroMedia, Borland, and many others
`produce these applications. This software will allow viewing of other file
`formats, multimedia presentations, and specialized functions.
`
`N 0 r E For more information on plug-ins, visit this site: http:/ /home.netscape.com/
`com prod/ products/ navigator jversion_2 .0 I plugins/.
`The number of plug-ins for browsers is expected to grow astronomically. As
`these applications become more sophisticated, they are expected to use
`JavaScript as their scripting language. In addition, many of these publishers
`will allow JavaScript in the browser to interact with their plug-ins. The objects
`in this software will be available or exposed to JavaScript.
`
`N o r E Microsoft is actively promoting its scripting language VBScript. The primary
`function of this language is to interact with and create external applications.
`Because this language is a subset of Microsoft's Visual Basic and works with ActiveX
`controls, it is expected to have a substantial impact.
`
`Netscape Navigator 2.0 supports a new functionality-enhancing feature that
`provides inline support for a huge range of Live Objects. With Live Objects,
`developers can deliver rich multimedia content through Internet sites,
`allowing users to seamlessly view that content with plug-ins such as Adobe
`Acrobat, Apple QuickTime, and Macromedia Shockwave for Director in the
`client window-all without launching any external helper applications.
`II New Internet Products. Given the scope of the companies behindJavaScript,
`you can expect to see some very specialized Internet products. Many of
`these products will use JavaScript for customizing.
`
`Role of Scripting
`
`There is no definitive definition of a scripting language. Sometimes the term is
`used to make a distinction from compiled languages. However, some languages
`like C or C++ can be used for scripting as well as full applications. The term script(cid:173)
`ing is also used because a language will react to, control, or "script" a series of
`
`Apple Inc. Exhibit 1022
`
`

`
`Chapter 1 What Is JavaScript?
`
`events. Even macro languages built into PC applications like spreadsheets, data(cid:173)
`bases, word processors, and multimedia applications are now often called scripting
`languages.
`
`The purpose of most scripting languages is to extend the capabilities of applica(cid:173)
`tions. Just as the authors of this book cannot imagine every creative use you will
`make of J avaScript, software authors cannot imagine every possible use of their
`applications. To make their products more versatile, they add a scripting language.
`With JavaScript you have a scripting language to use your imagination on the Web.
`
`Current uses of scripting languages may give you an insight of the potential for
`JavaScript. You probably know that macros are built in to many PC applications.
`Apple's HyperCard contains a very powerful scripting feature. Perl is a scripting
`language used in many CGI scripts you use on the Web.
`
`PC Macros Become Scripts
`Traditionally, a macro feature was added to PC software to allow a simple series of
`commands to be executed with a single keystroke. With great fanfare publishers
`introduced this feature as a way to reduce repetitive tasks and save time. For
`example, a word processor's simple macro might change the entire style of a
`document.
`
`Over time the macro feature of various applications became complex scripting
`languages. As scripts became longer and nontrivial, they extended the software
`beyond its normal purpose. New and creative combinations of commands made
`the software the basis for entirely new applications-for example, a set of word
`processing scripts for maintaining a small mailing list.
`
`These scripting languages in software are so sophisticated that they are the sub(cid:173)
`ject of college courses. Many universities now require courses in spreadsheet
`scripting for accounting and business students. Art majors are learning scripting
`procedures for high-end graphics and multimedia packages. Legal courses include
`using scripts to create documents. And computer science majors have a variety of
`courses involving scripting languages.
`
`A defining factor of this type of scripting language is that they only work with appli(cid:173)
`cations. Scripts in word processors add word processing features. Scripts in
`spreadsheets add spreadsheet features. These scripts do not go beyond the nature
`
`Apple Inc. Exhibit 1022
`
`

`
`Role of Scripting
`
`21
`
`of the software, but they use the existing commands of the software. In our ex(cid:173)
`ample, the mailing list script still works with words, the standard element of the
`word processor. This becomes a limitation on the usefulness of this script.
`
`With the popularity of program suites like Microsoft Office, Lotus SmartSuites,
`and Perfect Office, PC publishers have started making the same scripting lan(cid:173)
`guage work with more than one application. (Some would say that, at this point,
`macro languages become scripting languages.) Not only is the same language
`used in each application, the script language helps the applications work together.
`Microsoft expanded the role of Visual Basic to work with Microsoft Access and
`Excel. Lotus has developed LiveBasic for its product suite.
`
`With the PC environment, the role of scripting languages is serious business. It's
`the subject of college courses and often used to build nontrivial applications.
`
`N 0 r E Historically, scripting has made several "killer applications:· These are
`applications, that define a whole new category of software, significantly
`expand the market, and provide a primary reason for people to use a computer. The first
`successful spreadsheet was VisiCalc, which disappeared with the success of Lotus 1-2-3.
`The latter had scripting. There were many different database applications on the market
`before Ashton-Tate's dBase, but this product was programmable with a scripting
`language.
`
`Scripting gave these applications a competitive edge. First, it was a feature that could be
`used to sell the product. Second, people actually started to use the feature and create
`significant new capabilities for these products. Third, these scripts created a whole new
`market with magazine articles, books, third-party software publishers, and training.
`Fourth, the continuing use of these scripts became an investment by the user in these
`products. Existing scripts often prevented users from switching to competitive products.
`And finally, even when a competitive product was introduced with new features, someone
`would introduce scripts that attempted to add these features into the existing products.
`Scripts allowed both the publisher and users to advance.
`
`Scripting in Macintosh Applications
`The most notable use of scripting on the Macintosh is Apple's HyperCard pro(cid:173)
`gram. This application lets you build a group of cards and hyper link them together.
`The cards can contain not only text but multimedia files. The stack of cards that
`you construct can respond to user input.
`
`Apple Inc. Exhibit 1022
`
`

`
`Chapter 1 What Is JavaScript?
`
`The scripting language is such a strong element of HyperCard that many people
`consider HyperCard itself to be a language. Many Mac owners were initially disap(cid:173)
`pointed with HTML because it lacked many of the capabilities of HyperCard. In
`many ways, J avaScript brings some of the HyperCard features to the Web.
`
`Perl Started as a UNIX Scripting Language
`If you have used the Web, you have used Perl. It is the language used for probably
`the majority of CGI scripts. These are routines that run on Internet servers and
`respond to requests from browsers when a user completes a form. There are
`guestbooks, message boards, voting pages, surveys, and more that use Perl
`scripts.
`
`Perl is an interpreted language. While you should be able to find a version of Perl
`for almost any computer platform, it was created for UNIX systems. It is now plat(cid:173)
`form independent. The vast majority of Perl scripts will run without modification
`on any system. Take a script written on UNIX and it will run perfectly well on
`DOS.
`
`A CGI script is a type of script that responds to events. In this case, the event is
`a user submitting data from an HTML form. The attributes of a <FORM> include
`ACTION, which defines the script to process the data when it is submitted. For
`example,
`
`<FORM ACTION='\cgi-bin\guestbook.pl'>
`
`will process the data from the form in a script called guest book. pl. More than
`likely this routine would store the data in a file and return an HTML page to the
`browser as feedback. It would probably say something like, ''Thanks for your entry
`into our guestbook."
`
`Perl is freely distributed on the Internet, but please see its license for more detail.
`You should be able to find a version for your system using any of the Internet
`search services. Larry Wall is the sole maintainer.
`
`Perl's strength as a language is in manipulating files and text to produce reports.
`This capability along with its associative arrays make it a natural fit for creating
`CGI scripts. In a few lines you can process data and return an HTML document in
`response to an HTML form.
`
`Apple Inc. Exhibit 1022
`
`

`
`Extend the Capabilities of the HTM L Page
`
`23
`
`If you are a Perl programmer, you can rather quickly learn JavaScript. Both have
`a similar control structure and both are interpreted languages. Unlike Perl,
`JavaScript is object-based but it is not nearly as complex. You might miss the text
`processing capabilities of Perl, but you will find J avaScript a delightful new lan(cid:173)
`guage to learn.
`
`There are some cases where JavaScript is not the appropriate solution, but using
`Perl for a CGI script would fit the requirement. Generally, if you need to store in(cid:173)
`formation, you are going to have to do that on the server and Perl would be a good
`choice.
`
`Extend the Capabilities of the HTML Page
`
`Like other scripting languages that extend the capabilities of the application with
`which they work, JavaScript extends the standard Web page beyond its normal
`use. You have already seen in this chapter numerous ways to make your Web site
`come alive. And given the flexibility of the language, the only limit is your imagina(cid:173)
`tion. We must now consider how JavaScript works within HTML pages.
`
`JavaScript Pages Work Differently
`With the standard Web site, you get more information by clicking a hypertext link
`and having the server send you another file. On a more interactive page, you com(cid:173)
`plete a form, submit the results to the server, and wait for a response. In either
`case you must wait on the server to send a new file. This information is almost
`always a new page, though it might be a multimedia file like an audio clip or an
`animation.
`
`With JavaScript-enhanced pages, there is JavaScript code embedded in the HTML
`code. The JavaScript can instantly provide you information without waiting on the
`server or your Internet connection (see fig. 1.13). This information can come from
`user input, code "hidden" with the document, or other documents in frames or
`other windows.
`
`Apple Inc. Exhibit 1022
`
`

`
`Chapter 1 What Is JavaScript?
`
`This JavaScript-enhanced page makes this new information visible by updating the
`contents of a form or by generating an entirely new document. In a J avaScript cal(cid:173)
`culator (refer to fig. 1.1), the form is updated when numbers are entered. In the
`Punchline script (refer to fig. 1.5), the user clicks the button and a new document
`is created from the hidden punchline of the joke.
`
`FIG.1.13
`With standard HTML pages,
`a Web site serves each
`page to the browser. With
`JavaScript-enhanced pages,
`the source for a page can
`be the existing page.
`
`Server
`
`Server
`
`Page 3
`
`Each new page is sent in response to
`a request of the server
`
`The page with JavaScript can produce a
`new page without making a request to the
`server
`
`JavaScript Meets the HTML Page
`J avaScript works with browsers by embedding code directly into an HTML page.
`Netscape added a new generic tag called SCRIPT to recognize scripting languages.
`To inform the browser that your code is JavaScript, you must add the attribute of
`LANGUAGE="Javascript" to the SCRIPT ta

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket