|  The  selection  Object  Both the Internet Explorer and the Netscape Navigator support a  selection  object, and, of course, they're different. In fact, no public documentation is available for the Netscape Navigator's  selection  object yet. You can see the properties of the Internet Explorer's  selection  object in Table 11.16, its methods in Table 11.17, and its events in Table 11.18. You can access this object for a document with the  document  object's  selection  property (see Table 9.1).    Tip   Although Netscape has yet to document their  selection  object, we do know that it contains a  getRangeAt  method, and I put that method to work in "Using Ranges" later in this chapter.  
  Table 11.16. The Properties of the  selection  Object      |   Property   |   NS2   |   NS3   |   NS4   |   NS6   |   IE3a   |   IE3b   |   IE4   |   IE5   |   IE5.5   |   IE6   |   |   type   |  |  |  |  |  |  |  x  |  x  |  x  |  x  |   |  |  Read-only  |   |  |  Retrieves the type of selection, as a string. Possible values:  "none"  (there is no selection),  "text"  (the selection is a text selection), or  "control"  (the selection is a control).  |   |   typeDetail   |  |  |  |  |  |  |  |  |  x  |  x  |   |  |  Read-only  |   |  |  Some nonbrowser applications can provide a custom selections and can set values for this property that indicate the selection type. The implementation of this property in the Internet Explorer returns undefined.  |   |   TextRange   |  |  |  |  |  |  |  |  |  x  |  x  |   |  |  Read-only  |   |  |  Holds an array of the  TextRange  objects in the selection. An individual text range can be accessed as   selection     .    TextRange(    index    [    ,     subIndex    ])  . Here,   index   is an integer or string that indicates the element or collection to get. If this parameter is an integer, this method returns the text range at the given position. If this parameter is a string and there is more than one text range with the  name  or  id  property equal to that string, this method returns all matching elements as an array. The   subIndex   parameter is used when   index   is a string and more than one text range has the same  name  or  id  property, and lets you specify which text range to retrieve.  |   Table 11.17. The Methods of the  selection  Object      |   Method   |   NS2   |   NS3   |   NS4   |   NS6   |   IE3a   |   IE3b   |   IE4   |   IE5   |   IE5.5   |   IE6   |   |   clear   |  |  |  |  |  |  |  x  |  x  |  x  |  x  |   |  |  Returns: Nothing  |   |  |  Clears the contents of the selection.  |   |  |  Syntax:   selection    .clear()  .  |   |   createRange   |  |  |  |  |  |  |  x  |  x  |  x  |  x  |   |  |  Returns:  TextRange  object  |   |  |  Creates a  TextRange  object from the current text selection. Sytnax:   selection    .createRange()  .  |   |   CreateRangeCollection   |  |  |  |  |  |  |  |  |  x  |  x  |   |  |  Returns: Collection of  TextRange  objects  |   |  |  Creates a  TextRange  object collection from the current selectioncurrently, the whole selection is returned in one  TextRange  object. Theoretically, nonbrowser applications can support multiple selections and can return a collection of  TextRange  objects.  |   |   empty   |  |  |  |  |  |  |  x  |  x  |  x  |  x  |   |  |  Returns: Nothing  |   |  |  Cancels the current selection, sets the selection type to none, and sets the item property to  null  . Sytnax:   selection     .     empty()    .   |   Table 11.18. The Events of the  selection  Object      |   Property   |   NS2   |   NS3   |   NS4   |   NS6   |   IE3a   |   IE3b   |   IE4   |   IE5   |   IE5.5   |   IE6   |   |   ontimeerror   |  See Chapter 6.  |   |  |  In fact, we've already seen how to use the Internet Explorer's  selection  object in Chapter 9 (see Listing 09-07.html on the web site). In that example, you could make a selection using the mouse, and as soon as you did, the selected text appeared in a text field.  |   Here's the code:   <HTML>      <HEAD>          <TITLE>Reading Selected Text</TITLE>          <SCRIPT LANGUAGE="JavaScript">              <!--  function getSelected()   {   if (navigator.appName == "Microsoft Internet Explorer") {   document.form1.text1.value = document.selection.createRange().text   }   if(navigator.appName == "Netscape") {   document.form1.text1.value = document.getSelection()   }   }  // -->          </SCRIPT>      </HEAD>      <BODY ONMOUSEUP="getSelected()">          <H1>Reading Selected Text</H1>          Select some of this text!          <BR>          <FORM NAME="form1">              You selected: <INPUT TYPE="TEXT" NAME="text1">          </FORM>      </BODY>  </HTML>  You can see the results in Chapter 9, Figure 9.4, where I'm selecting some text and the code is displaying it.  |