[an error occurred while processing this directive]





-----------------------------------------------------------------------

          T h e   J a v a S c r i p t   Q & A   G u i d e

                         comp.lang.javascript

                         

      Contributions and clarifications to: webrx@mindspring.com

-----------------------------------------------------------------------



-----------------------------------------------------------------------

What is JavaScript

-----------------------------------------------------------------------



0.0 Q: "WHAT IS JAVASCRIPT?"



   JavaScript is one of the new family of programming languages which were

   developed specifically for World Wide Web Pages. With JavaScript,

   you can create interactive WebSites that really seem to come alive.

   And here's the good part:

   * You don't need a special account to write in JavaScript.

        You include the programs directly in your HTML files.

   * You don't need to use a compiler. 

        Your browser interprets JavaScript just like it interprets HTML

   In fact, if you feel comfortable writing HTML, you'll feel comfortable 

   writing JavaScript. It's really that easy. [ELS]

   

0.1 Q: "HOW CAN I USE JAVASCRIPT?"

   

   Say you're running a business site. You could use JavaScript to help fill 

   a shopping cart and keep track of a customer's order. Or you might use 

   JavaScript to store a profile of your customer's preferences or mailing 

   information so he doesn't have to fill out this information each time

   he places an order.



   If you're a hobbyest, you can use JavaScript to write games. You can find 

   any number of sites on the World Wide Web already that have guessing games 

   and memory games all written in JavaScript.[ELS]



0.2 Q: "HOW IS JAVASCRIPT DIFFERENT FROM JAVA?"



    * Java is a full object-oriented compiled programming language

    meant for programmers.



    * JavaScript, in contrast, is a simple interpreted scripting

    language meant for the rest of us.



    * It's a much smaller language, It's a much simpler language.



    * It's a language meant for creating small tight utilities

    rather than large comprehensive applications.



    * If you're comfortable with Basic, HyperCard, Forth or Logo, or

    even just HTML, I think you'll have very little trouble

    learning JavaScript.[ELS]

    

0.3 Q: "WHAT OTHER BROWSERS SUPPORT JAVASCRIPT?"

    

    Microsoft Internet Explorer has announced support of JavaScript

    but the current betas execute only trivial JavaScript code. [ELS]

    

-----------------------------------------------------------------------

Page Doesn't Work Right

-----------------------------------------------------------------------



1.0 Q: "MY PAGE DOESN'T LOAD CORRECTLY"

    A: Add Height and Width tags to all your IMGs. [ELS]

    A: Add width attributes to all your tables that contain JavaScript.

       [Paul Andrews]

       We can't specify the widths of tables, because a typical table is 

       as wide as n input widgets, and we don't know how wide they are.

       [David Zink]

    A: This should be OK:           <IMG SRC="myimg.gif" HEIGHT=100 WIDTH=50>

       This may cause weird errors: <IMG SRC="myimg.gif"> [Brian Stoler]

    A: For windows generated by JavaScript function calls, "Begin your 

       output with document.open() and end with document.close()" 

       [Matthew Glidden]

       

1.1 Q: "HOW CAN I MAKE THE CLICK FUNCTION WORK ON MY BUTTONS?"

    A: You can't.  Click is broken on most platforms. [ELS]



1.2 Q: "HOW CAN I AUTOMATICALLY UPDATE SELECTION LISTS TO A NEW VALUE?"

    A: You can't. [ELS]



-----------------------------------------------------------------------

Scrolling Banners

-----------------------------------------------------------------------



2.0 Q: "I LOVE THOSE SCROLLING BANNERS.  WHERE CAN I GET ONE?"

    A: http://www.mindspring.com/~morrione [ELS]



2.1 Q: "I HATE THOSE SCROLLING BANNERS.  HOW DO I TURN THEM OFF?"

    A: http://www.mindspring.com/~webrx/devirus.html or turn

         off JavaScript. [ELS]



-----------------------------------------------------------------------

Source Code Issues

-----------------------------------------------------------------------



3.0 Q: "HOW DO I HIDE JAVASCRIPT CODE FROM OLD BROWSERS?"

    A: General Method 1:

         <SCRIPT Language='JavaScript'><-- JavaScript Follows

         ...

         <-- JavaScript Ends --></SCRIPT>

         

       General Method 2:

         <SCRIPT Language='JavaScript'><-- JavaScript Follows

         ...

         //JavaScript Ends --></SCRIPT>

         

       Hints:

         * Replace i-- with i -= 1

         * Replace x > y with y < x 

         * Declare var tmp = unescape('%3E') and add it to your

           strings. e.g. document.write('</FONT'+tmp) 

           rather than document.write('</FONT>')

           [ELS][Helped by Bill Dortch][Helped by Ronan Waide]

           

3.1 Q: "IS 'SRC =' (SOURCE INCLUSION FROM SECONDARY FILES) BROKEN?"

    A: Yes. [ELS]

    

3.2 Q: "CAN I KEEP MY JAVASCRIPT CODE SECRET?"

    A: No. Source code can not be kept secret.  Your reader's browser

       needs to see the source in order to execute it. If you need

       code secrecy, consider using Java. [ELS]

    



-----------------------------------------------------------------------

JavaScript Functionality 

-----------------------------------------------------------------------



4.0 Q: "HOW DO I PLAY SOUNDS WITH JAVASCRIPT?"

    A: Set the location attribute to a sound URL. Be aware: the sound

       will not play synchronously. Do not try to attach "click" sounds

       to buttons.  The click may be heard up to five minutes after the

       button has been pressed.  

       

       self.location='foo.au'  [ELS]



4.1 Q: "HOW DO I MAKE A LINK UPDATE TWO FRAMES?"

    A: Use a function.

     

       <SCRIPT language='javascript'>

        function doit(){

          parent.biffyframe.location='http://blah blah'

          parent.spiffyframe.location='http://blah blah'

        }

        </SCRIPT>



        <A HREF='javascript:doit()'>a link</a>



4.2 Q: "HOW DO I HANDLE SELECTION LISTS?"

    A: Index of the selection: myIndex = aForm.SELNAME.selectedIndex

       Text of the selection:  myText  = aForm.SELNAME.options[myIndex].text

       [ELS]



4.3 Q: "HOW DO I MAKE ANIMATED GIFS WITH JAVASCRIPT?"

    A: An animated gif is NOT a computer program! It is simply the combination 

       of different images combined into one gif.  Compuserve released this 

       format quite some time ago, but just recently it started receiving 

       publicity. To make an animated gif, you will need to make a series of

       images portraying the animation you wish to show, then use a utility,

       such as Graphics Construction Set, and combine these into one. Please

       note the animation will currently show only on Netscape 2.0 or higher.

       [Jerome Blake]

     A: See: http://member.aol.com/royalef/gifanim.htm [ELS]



4.4 Q: "HOW DO I CALL JAVA APPLET METHODS FROM JAVASCRIPT?"

    A: Wait for Atlas beta public release 2 (3.0b3)

    

4.5 Q: "HOW DO I MAKE TWO WINDOWS TALK TO EACH OTHER"

    A: Make sure to create a backwards link from the second window while

       creating it.

       

       e.g. myWin = window.open(blah blah)

            myWin.mainWindow = self

            

       and from the source in myWin

            myWin.mainWindow.document.open()

            myWin.mainWindow.document.write('blah blah')



       [ELS]

       

4.6 Q: "HOW DO I DETECT PLUG-INS"

    A: Search the text string returned by Navigator.plugins (Atlas) [ELS]

       

4.7 Q: "I CAN SET WINDOW HEIGHT AND WIDTH. HOW DO I SET ITS LOCATION?"

    A: You can't. [ELS]

    

4.8 Q: "HOW DO I AUTOSEND/CUSTOMIZE MAIL?"

    A: You can't.  Security reasons. Mail can only be sent by a

       user's button press.  You can not create mail programmatically.[ELS]

       

4.9 Q: "HOW DO I RECOVER THE WINDOW SIZE OR LOCATION?"

    A: You can't. [ELS]



-----------------------------------------------------------------------

Buttons and ImageMaps

-----------------------------------------------------------------------



5.0 Q: "HOW DO I COLOR BUTTONS?"

    A: You cannot. [ELS]



5.1 Q: "HOW DO I USE ONMOUSEOVER WITH A BUTTON"

    A: You cannot. [ELS]



5.2 Q: "HOW DO I USE THE UNDOCUMENTED IMAGE FORM ELEMENTS?"

    A: Use "IMAGE" as the type. <INPUT TYPE="IMAGE" SRC="wherever">.

       This form element does not support any events. [ELS]

       

5.3 Q: "HOW DO I RECOVER COORDINATES FROM IMAGE MAPS?"

    A: The form must submit and the coordinates recovered from the

       "search" property of the location.href. There is no way to

       recover coordinates on the fly. [ELS]



-----------------------------------------------------------------------

Documentation

-----------------------------------------------------------------------

Netscape Docs: 

  http://home.netscape.com/comprod/products/navigator/version_2.0/script/

  http://home.netscape.com/eng/mozilla/2.0/handbook/javascript/jsdoc.zip



Frames Docs: 

  http://home.netscape.com/assist/net_sites/frames.html



Cookie Docs: 

  http://www.netscape.com/newsref/std/cookie_spec.html



Tutorials:

  http://www.webconn.com/java/javascript/intro/



[ELS]



-----------------------------------------------------------------------

Contributions by and information plundered from:

-----------------------------------------------------------------------

* Erica L. Sadun * Paul Andrews * Brian Stoler * Bill Dortch 

* Matthew Glidden * John Lehmann * Ronan Waide * Larry W. Virden

* Lyndsey McCollam * Andrew Smith * David Zink



Last Revision 22 May 1996