| 
      1
     | 
    
      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.2//EN">
 
     | 
  
  
    | 
      2
     | 
    
      <html> <head>
 
     | 
  
  
    | 
      3
     | 
    
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
     | 
  
  
    | 
      4
     | 
    
      <title>HTMLArea-3.0 Reference</title>
 
     | 
  
  
    | 
      5
     | 
    
      
 
     | 
  
  
    | 
      6
     | 
    
      <style type="text/css">
 
     | 
  
  
    | 
      7
     | 
    
        @import url(htmlarea.css);
 
     | 
  
  
    | 
      8
     | 
    
        body { font: 14px verdana,sans-serif; background: #fff; color: #000; }
     | 
  
  
    | 
      9
     | 
    
        h1, h2 { font-family:tahoma,sans-serif; }
     | 
  
  
    | 
      10
     | 
    
        h1 { border-bottom: 2px solid #000; }
     | 
  
  
    | 
      11
     | 
    
        h2 { border-bottom: 1px solid #aaa; }
     | 
  
  
    | 
      12
     | 
    
        h3, h4 { margin-bottom: 0px; font-family: Georgia,serif; font-style: italic; }
     | 
  
  
    | 
      13
     | 
    
        h4 { font-size: 90%; margin-left: 1em; }
     | 
  
  
    | 
      14
     | 
    
        acronym { border-bottom: 1px dotted #063; color: #063; }
     | 
  
  
    | 
      15
     | 
    
        p { margin-left: 2em; margin-top: 0.3em; }
     | 
  
  
    | 
      16
     | 
    
        li p { margin-left: 0px; }
     | 
  
  
    | 
      17
     | 
    
        .abstract { padding: 5px; margin: 0px 10em; font-size: 90%; border: 1px dashed #aaa; background: #eee;}
     | 
  
  
    | 
      18
     | 
    
        li { margin-left: 2em; }
     | 
  
  
    | 
      19
     | 
    
        em { color: #042; }
     | 
  
  
    | 
      20
     | 
    
        a { color: #00f; }
     | 
  
  
    | 
      21
     | 
    
        a:hover { color: #f00; }
     | 
  
  
    | 
      22
     | 
    
        a:active { color: #f80; }
     | 
  
  
    | 
      23
     | 
    
        span.browser { font-weight: bold; color: #864; }
     | 
  
  
    | 
      24
     | 
    
        .fixme { font-size: 20px; font-weight: bold; color: red; background: #fab;
     | 
  
  
    | 
      25
     | 
    
      padding: 5px; text-align: center; }
 
     | 
  
  
    | 
      26
     | 
    
        .code {
     | 
  
  
    | 
      27
     | 
    
         background: #e4efff; padding: 5px; border: 1px dashed #abc; margin-left: 2em; margin-right: 2em;
 
     | 
  
  
    | 
      28
     | 
    
         font-family: fixed,"lucidux mono","andale mono","courier new",monospace;
 
     | 
  
  
    | 
      29
     | 
    
        }
 
     | 
  
  
    | 
      30
     | 
    
        .note, .warning { font-weight: bold; color: #0a0; font-variant: small-caps; }
     | 
  
  
    | 
      31
     | 
    
        .warning { color: #a00; }
     | 
  
  
    | 
      32
     | 
    
      
 
     | 
  
  
    | 
      33
     | 
    
      .string {
     | 
  
  
    | 
      34
     | 
    
        color: #06c;
 
     | 
  
  
    | 
      35
     | 
    
      } /* font-lock-string-face */
 
     | 
  
  
    | 
      36
     | 
    
      .comment {
     | 
  
  
    | 
      37
     | 
    
        color: #840;
 
     | 
  
  
    | 
      38
     | 
    
      } /* font-lock-comment-face */
 
     | 
  
  
    | 
      39
     | 
    
      .variable-name {
     | 
  
  
    | 
      40
     | 
    
        color: #000;
 
     | 
  
  
    | 
      41
     | 
    
      } /* font-lock-variable-name-face */
 
     | 
  
  
    | 
      42
     | 
    
      .type {
     | 
  
  
    | 
      43
     | 
    
        color: #008;
 
     | 
  
  
    | 
      44
     | 
    
        font-weight: bold;
 
     | 
  
  
    | 
      45
     | 
    
      } /* font-lock-type-face */
 
     | 
  
  
    | 
      46
     | 
    
      .reference {
     | 
  
  
    | 
      47
     | 
    
        color: #048;
 
     | 
  
  
    | 
      48
     | 
    
      } /* font-lock-reference-face */
 
     | 
  
  
    | 
      49
     | 
    
      .preprocessor {
     | 
  
  
    | 
      50
     | 
    
        color: #808;
 
     | 
  
  
    | 
      51
     | 
    
      } /* font-lock-preprocessor-face */
 
     | 
  
  
    | 
      52
     | 
    
      .keyword {
     | 
  
  
    | 
      53
     | 
    
        color: #00f;
 
     | 
  
  
    | 
      54
     | 
    
        font-weight: bold;
 
     | 
  
  
    | 
      55
     | 
    
      } /* font-lock-keyword-face */
 
     | 
  
  
    | 
      56
     | 
    
      .function-name {
     | 
  
  
    | 
      57
     | 
    
        color: #044;
 
     | 
  
  
    | 
      58
     | 
    
      } /* font-lock-function-name-face */
 
     | 
  
  
    | 
      59
     | 
    
      .html-tag {
     | 
  
  
    | 
      60
     | 
    
        font-weight: bold;
 
     | 
  
  
    | 
      61
     | 
    
      } /* html-tag-face */
 
     | 
  
  
    | 
      62
     | 
    
      .html-helper-italic {
     | 
  
  
    | 
      63
     | 
    
        font-style: italic;
 
     | 
  
  
    | 
      64
     | 
    
      } /* html-helper-italic-face */
 
     | 
  
  
    | 
      65
     | 
    
      .html-helper-bold {
     | 
  
  
    | 
      66
     | 
    
        font-weight: bold;
 
     | 
  
  
    | 
      67
     | 
    
      } /* html-helper-bold-face */
 
     | 
  
  
    | 
      68
     | 
    
      
 
     | 
  
  
    | 
      69
     | 
    
      </style>
 
     | 
  
  
    | 
      70
     | 
    
      
 
     | 
  
  
    | 
      71
     | 
    
      <script type="text/javascript">
 
     | 
  
  
    | 
      72
     | 
    
        _editor_url = './';
 
     | 
  
  
    | 
      73
     | 
    
        _editor_lang = 'en';
 
     | 
  
  
    | 
      74
     | 
    
      </script>
 
     | 
  
  
    | 
      75
     | 
    
      <script type="text/javascript" src="htmlarea.js"></script>
 
     | 
  
  
    | 
      76
     | 
    
      <script type="text/javascript" src="dialog.js"></script>
 
     | 
  
  
    | 
      77
     | 
    
      <script tyle="text/javascript" src="lang/en.js"></script>
 
     | 
  
  
    | 
      78
     | 
    
      
 
     | 
  
  
    | 
      79
     | 
    
      </head>
 
     | 
  
  
    | 
      80
     | 
    
      
 
     | 
  
  
    | 
      81
     | 
    
      <body onload="HTMLArea.replace('TA')">
     | 
  
  
    | 
      82
     | 
    
      
 
     | 
  
  
    | 
      83
     | 
    
      
 
     | 
  
  
    | 
      84
     | 
    
      <h1>HTMLArea-3.0 Documentation</h1>
 
     | 
  
  
    | 
      85
     | 
    
      
 
     | 
  
  
    | 
      86
     | 
    
      <div class="abstract" style="color: red; font-weight: bold">
 
     | 
  
  
    | 
      87
     | 
    
      
 
     | 
  
  
    | 
      88
     | 
    
            This documentation contains valid information, but is outdated in the
 
     | 
  
  
    | 
      89
     | 
    
            terms that it does not covers all the features of HTMLArea.  A new
 
     | 
  
  
    | 
      90
     | 
    
            documentation project will be started, based on LaTeX.
 
     | 
  
  
    | 
      91
     | 
    
      
 
     | 
  
  
    | 
      92
     | 
    
      </div>
 
     | 
  
  
    | 
      93
     | 
    
      
 
     | 
  
  
    | 
      94
     | 
    
      
 
     | 
  
  
    | 
      95
     | 
    
      <h2>Introduction</h2>
 
     | 
  
  
    | 
      96
     | 
    
      
 
     | 
  
  
    | 
      97
     | 
    
      <h3>What is HTMLArea?</h3>
 
     | 
  
  
    | 
      98
     | 
    
      
 
     | 
  
  
    | 
      99
     | 
    
      <p>HTMLArea is a free <acronym title="What You See Is What You Get"
 
     | 
  
  
    | 
      100
     | 
    
      >WYSIWYG</acronym> editor replacement for <code><textarea></code>
 
     | 
  
  
    | 
      101
     | 
    
      fields.  By adding a few simple lines of JavaScript code to your web page
 
     | 
  
  
    | 
      102
     | 
    
      you can replace a regular textarea with a rich text editor that lets your
 
     | 
  
  
    | 
      103
     | 
    
      users do the following:</p>
 
     | 
  
  
    | 
      104
     | 
    
      
 
     | 
  
  
    | 
      105
     | 
    
      <ul>
 
     | 
  
  
    | 
      106
     | 
    
        <li>Format text to be bold, italicized, or underlined.</li>
 
     | 
  
  
    | 
      107
     | 
    
        <li>Change the face, size, style and color.</li>
 
     | 
  
  
    | 
      108
     | 
    
        <li>Left, center, or right-justify paragraphs.</li>
 
     | 
  
  
    | 
      109
     | 
    
        <li>Make bulleted or numbered lists.</li>
 
     | 
  
  
    | 
      110
     | 
    
        <li>Indent or un-indent paragraphs.</li>
 
     | 
  
  
    | 
      111
     | 
    
        <li>Insert a horizontal line.</li>
 
     | 
  
  
    | 
      112
     | 
    
        <li>Insert hyperlinks and images.</li>
 
     | 
  
  
    | 
      113
     | 
    
        <li>View the raw HTML source of what they're editing.</li>
 
     | 
  
  
    | 
      114
     | 
    
        <li>and much more...</li>
 
     | 
  
  
    | 
      115
     | 
    
      </ul>
 
     | 
  
  
    | 
      116
     | 
    
      
 
     | 
  
  
    | 
      117
     | 
    
      <p>Some of the interesting features of HTMLArea that set's it apart from
 
     | 
  
  
    | 
      118
     | 
    
      other web based WYSIWYG editors are as follows:</p>
 
     | 
  
  
    | 
      119
     | 
    
      
 
     | 
  
  
    | 
      120
     | 
    
      <ul>
 
     | 
  
  
    | 
      121
     | 
    
        <li>It's lightweight, fast loading and can transform a regular textarea
 
     | 
  
  
    | 
      122
     | 
    
        into a rich-text editor with a single line of JavaScript.</li>
 
     | 
  
  
    | 
      123
     | 
    
        <li>Generates clean, valid HTML.</li>
 
     | 
  
  
    | 
      124
     | 
    
        <li>It degrades gracefully to older or non-supported browsers
 
     | 
  
  
    | 
      125
     | 
    
        (they get the original textarea field).</li>
 
     | 
  
  
    | 
      126
     | 
    
        <li>It's free and can be incorporated into any free or commercial
 
     | 
  
  
    | 
      127
     | 
    
        program.</li>
 
     | 
  
  
    | 
      128
     | 
    
        <li>It works with any server-side languages (ASP, PHP, Perl, Java,
 
     | 
  
  
    | 
      129
     | 
    
        etc).</li>
 
     | 
  
  
    | 
      130
     | 
    
        <li>It's written in JavaScript and can be easily viewed, modified or
 
     | 
  
  
    | 
      131
     | 
    
        extended.</li>
 
     | 
  
  
    | 
      132
     | 
    
        <li>It remembers entered content when a user navigates away and then hits
 
     | 
  
  
    | 
      133
     | 
    
        "back" in their browser.</li>
 
     | 
  
  
    | 
      134
     | 
    
        <li>Since it replaces existing textareas it doesn't require a lot of code
 
     | 
  
  
    | 
      135
     | 
    
        to add it to your pages (just one line).</li>
 
     | 
  
  
    | 
      136
     | 
    
        <li>Did we mention it was free? ;-)</li>
 
     | 
  
  
    | 
      137
     | 
    
      </ul>
 
     | 
  
  
    | 
      138
     | 
    
      
 
     | 
  
  
    | 
      139
     | 
    
      <h3>Is it really free?  What's the catch?</h3>
 
     | 
  
  
    | 
      140
     | 
    
      
 
     | 
  
  
    | 
      141
     | 
    
      <p>Yes! It's really free. You can use it, modify it, distribute it with your
 
     | 
  
  
    | 
      142
     | 
    
      software, or do just about anything you like with it.</p>
 
     | 
  
  
    | 
      143
     | 
    
      
 
     | 
  
  
    | 
      144
     | 
    
      <h3>What are the browser requirements?</h3>
 
     | 
  
  
    | 
      145
     | 
    
      
 
     | 
  
  
    | 
      146
     | 
    
      <p>HTMLArea requires <span class="browser"><a
 
     | 
  
  
    | 
      147
     | 
    
      href="http://www.microsoft.com/ie">Internet Explorer</a> >= 5.5</span>
 
     | 
  
  
    | 
      148
     | 
    
      (Windows only), or <span class="browser"><a
 
     | 
  
  
    | 
      149
     | 
    
      href="http://mozilla.org">Mozilla</a> >= 1.3-Beta</span> on any platform.
 
     | 
  
  
    | 
      150
     | 
    
      Any browser based on <a href="http://mozilla.org/newlayout">Gecko</a> will
 
     | 
  
  
    | 
      151
     | 
    
      also work, provided that Gecko version is at least the one included in
 
     | 
  
  
    | 
      152
     | 
    
      Mozilla-1.3-Beta (for example, <a
 
     | 
  
  
    | 
      153
     | 
    
      href="http://galeon.sf.net">Galeon-1.2.8</a>).  However, it degrades
 
     | 
  
  
    | 
      154
     | 
    
      gracefully to other browsers. They will get a regular textarea field
 
     | 
  
  
    | 
      155
     | 
    
      instead of a WYSIWYG editor.</p>
 
     | 
  
  
    | 
      156
     | 
    
      
 
     | 
  
  
    | 
      157
     | 
    
      <h3>Can I see an example of what it looks like?</h3>
 
     | 
  
  
    | 
      158
     | 
    
      
 
     | 
  
  
    | 
      159
     | 
    
      <p>Just make sure you're using one of the browsers mentioned above and see
 
     | 
  
  
    | 
      160
     | 
    
      below.</p>
 
     | 
  
  
    | 
      161
     | 
    
      
 
     | 
  
  
    | 
      162
     | 
    
      <form onsubmit="return false;">
 
     | 
  
  
    | 
      163
     | 
    
      <textarea id="TA" style="width: 100%; height: 15em;">
 
     | 
  
  
    | 
      164
     | 
    
      <p>Here is some sample text in textarea that's been transformed with <font
 
     | 
  
  
    | 
      165
     | 
    
      color="#0000CC"><b>HTMLArea</b></font>.<br />
 
     | 
  
  
    | 
      166
     | 
    
      You can make things <b>bold</b>, <i>italic</i>, <u>underline</u>.  You can change the
 
     | 
  
  
    | 
      167
     | 
    
      <font size="3">size</font> and <b><font color="#0000CC">c</font><font color="#00CC00">o</font><font color="#00CCCC">l</font><font color="#CC0000">o</font><font color="#CC00CC">r</font><font color="#CCCC00">s</font><font color="#CCCCCC">!</font></b>
 
     | 
  
  
    | 
      168
     | 
    
      And lots more...</p>
 
     | 
  
  
    | 
      169
     | 
    
      
 
     | 
  
  
    | 
      170
     | 
    
      <p align="center"><font size="4" color="#ff0000"><b><u>Try HTMLArea
 
     | 
  
  
    | 
      171
     | 
    
      today!</u></b></font><br /></p>
 
     | 
  
  
    | 
      172
     | 
    
      </textarea>
 
     | 
  
  
    | 
      173
     | 
    
      </form>
 
     | 
  
  
    | 
      174
     | 
    
      
 
     | 
  
  
    | 
      175
     | 
    
      <h3>Where can I find out more info, download the latest version and talk to
 
     | 
  
  
    | 
      176
     | 
    
      other HTMLArea users?</h3>
 
     | 
  
  
    | 
      177
     | 
    
      
 
     | 
  
  
    | 
      178
     | 
    
      <p>You can find out more about HTMLArea and download the latest version on
 
     | 
  
  
    | 
      179
     | 
    
      the <a href="http://dynarch.com/htmlarea/">HTMLArea
 
     | 
  
  
    | 
      180
     | 
    
      homepage</a> and you can talk to other HTMLArea users and post any comments
 
     | 
  
  
    | 
      181
     | 
    
      or suggestions you have in the <a
 
     | 
  
  
    | 
      182
     | 
    
      href="http://www.interactivetools.com/iforum/Open_Source_C3/htmlArea_v3.0_-_Alpha_Release_F14/"
 
     | 
  
  
    | 
      183
     | 
    
      >HTMLArea forum</a>.</p>
 
     | 
  
  
    | 
      184
     | 
    
      
 
     | 
  
  
    | 
      185
     | 
    
      <h2>Keyboard shortcuts</h2>
 
     | 
  
  
    | 
      186
     | 
    
      
 
     | 
  
  
    | 
      187
     | 
    
      <p>The editor provides the following key combinations:</p>
 
     | 
  
  
    | 
      188
     | 
    
      
 
     | 
  
  
    | 
      189
     | 
    
      <ul>
 
     | 
  
  
    | 
      190
     | 
    
        <li>CTRL-A -- select all</li>
 
     | 
  
  
    | 
      191
     | 
    
        <li>CTRL-B -- bold</li>
 
     | 
  
  
    | 
      192
     | 
    
        <li>CTRL-I -- italic</li>
 
     | 
  
  
    | 
      193
     | 
    
        <li>CTRL-U -- underline</li>
 
     | 
  
  
    | 
      194
     | 
    
        <li>CTRL-S -- strikethrough</li>
 
     | 
  
  
    | 
      195
     | 
    
        <li>CTRL-L -- justify left</li>
 
     | 
  
  
    | 
      196
     | 
    
        <li>CTRL-E -- justify center</li>
 
     | 
  
  
    | 
      197
     | 
    
        <li>CTRL-R -- justify right</li>
 
     | 
  
  
    | 
      198
     | 
    
        <li>CTRL-J -- justify full</li>
 
     | 
  
  
    | 
      199
     | 
    
        <li>CTRL-1 .. CTRL-6 -- headings (<h1> .. <h6>)</li>
 
     | 
  
  
    | 
      200
     | 
    
        <li>CTRL-0 (zero) -- clean content pasted from Word</li>
 
     | 
  
  
    | 
      201
     | 
    
      </ul>
 
     | 
  
  
    | 
      202
     | 
    
      
 
     | 
  
  
    | 
      203
     | 
    
      <h2>Installation</h2>
 
     | 
  
  
    | 
      204
     | 
    
      
 
     | 
  
  
    | 
      205
     | 
    
      <h3>How do I add HTMLArea to my web page?</h3>
 
     | 
  
  
    | 
      206
     | 
    
      
 
     | 
  
  
    | 
      207
     | 
    
      <p>It's easy.  First you need to upload HTMLArea files to your website.
 
     | 
  
  
    | 
      208
     | 
    
      Just follow these steps.</p>
 
     | 
  
  
    | 
      209
     | 
    
      
 
     | 
  
  
    | 
      210
     | 
    
      <ol>
 
     | 
  
  
    | 
      211
     | 
    
        <li>Download the latest version from the <a
 
     | 
  
  
    | 
      212
     | 
    
        href="http://www.interactivetools.com/products/htmlarea/">htmlArea
 
     | 
  
  
    | 
      213
     | 
    
        homepage</a>.</li>
 
     | 
  
  
    | 
      214
     | 
    
        <li>Unzip the files onto your local computer (making sure to maintain the
 
     | 
  
  
    | 
      215
     | 
    
        directory structure contained in the zip).</li>
 
     | 
  
  
    | 
      216
     | 
    
        <li>Create a new folder on your website called /htmlarea/ (make sure it's
 
     | 
  
  
    | 
      217
     | 
    
        NOT inside the cgi-bin).</li>
 
     | 
  
  
    | 
      218
     | 
    
        <li>Transfer all the HTMLArea files from your local computer into the
 
     | 
  
  
    | 
      219
     | 
    
        /htmlarea/ folder on your website.</li>
 
     | 
  
  
    | 
      220
     | 
    
        <li>Open the example page /htmlarea/examples/core.html with your browser to make
 
     | 
  
  
    | 
      221
     | 
    
        sure everything works.</li>
 
     | 
  
  
    | 
      222
     | 
    
      </ol>
 
     | 
  
  
    | 
      223
     | 
    
      
 
     | 
  
  
    | 
      224
     | 
    
      <p>Once htmlArea is on your website all you need to do is add some
 
     | 
  
  
    | 
      225
     | 
    
      JavaScript to any pages that you want to add WYSIWYG editors to.  Here's how
 
     | 
  
  
    | 
      226
     | 
    
      to do that.</p>
 
     | 
  
  
    | 
      227
     | 
    
      
 
     | 
  
  
    | 
      228
     | 
    
      <ol>
 
     | 
  
  
    | 
      229
     | 
    
      
 
     | 
  
  
    | 
      230
     | 
    
        <li>Define some global variables.  "_editor_url" has to be the absolute
 
     | 
  
  
    | 
      231
     | 
    
        URL where HTMLArea resides within your
 
     | 
  
  
    | 
      232
     | 
    
        website; as we discussed, this would be “/htmlarea/”.  "_editor_lang" must
 
     | 
  
  
    | 
      233
     | 
    
        be the language code in which you want HTMLArea to appear.  This defaults
 
     | 
  
  
    | 
      234
     | 
    
        to "en" (English); for a list of supported languages, please look into
 
     | 
  
  
    | 
      235
     | 
    
        the "lang" subdirectory in the distribution.
 
     | 
  
  
    | 
      236
     | 
    
        <pre class="code"
 
     | 
  
  
    | 
      237
     | 
    
        ><span class="function-name"><</span><span class="html-tag">script</span> <span class="variable-name">type=</span><span class="string">"text/javascript"</span><span class="function-name">></span>
 
     | 
  
  
    | 
      238
     | 
    
         _editor_url = <span class="string">"/htmlarea/"</span>;
 
     | 
  
  
    | 
      239
     | 
    
         _editor_lang = <span class="string">"en"</span>;
 
     | 
  
  
    | 
      240
     | 
    
      <span class="function-name"><</span><span class="html-tag">/script</span><span class="function-name">></span></pre>
 
     | 
  
  
    | 
      241
     | 
    
      
 
     | 
  
  
    | 
      242
     | 
    
        <li>Include the "htmlarea.js" script:
 
     | 
  
  
    | 
      243
     | 
    
        <pre class="code"
 
     | 
  
  
    | 
      244
     | 
    
        ><span class="function-name"><</span><span class="html-tag">script</span> <span class="variable-name">type=</span><span class="string">"text/javascript"</span> <span class="variable-name">src=</span><span class="string">"/htmlarea/htmlarea.js"</span><span class="function-name">></span><span class="paren-face-match"><</span><span class="html-tag">/script</span><span class="paren-face-match">></span></pre>
 
     | 
  
  
    | 
      245
     | 
    
        </li>
 
     | 
  
  
    | 
      246
     | 
    
      
 
     | 
  
  
    | 
      247
     | 
    
        <li><p>If you want to change all your <textarea>-s into
 
     | 
  
  
    | 
      248
     | 
    
        HTMLArea-s then you can use the simplest way to create HTMLArea:</p>
 
     | 
  
  
    | 
      249
     | 
    
        <pre class="code"
 
     | 
  
  
    | 
      250
     | 
    
        ><span class="function-name"><</span><span class="html-tag">script</span> <span class="variable-name">type=</span><span class="string">"text/javascript"</span> <span class="variable-name">defer=</span><span class="string">"1"</span><span class="function-name">></span>
 
     | 
  
  
    | 
      251
     | 
    
          HTMLArea.replaceAll<span class="function-name">()</span>;
 
     | 
  
  
    | 
      252
     | 
    
      <span class="paren-face-match"><</span><span class="html-tag">/script</span><span class="paren-face-match">></span></pre>
 
     | 
  
  
    | 
      253
     | 
    
        <p><span class="note">Note:</span> you can also add the
 
     | 
  
  
    | 
      254
     | 
    
        <code>HTMLArea.replaceAll()</code> code to the <code>onload</code>
 
     | 
  
  
    | 
      255
     | 
    
        event handler for the <code>body</code> element, if you find it more appropriate.</p>
 
     | 
  
  
    | 
      256
     | 
    
      
 
     | 
  
  
    | 
      257
     | 
    
        <p>A different approach, if you have more than one textarea and only want
 
     | 
  
  
    | 
      258
     | 
    
        to change one of them, is to use <code>HTMLArea.replace("id")</code> --
     | 
  
  
    | 
      259
     | 
    
        pass the <code>id</code> of your textarea.  Do not use the
 
     | 
  
  
    | 
      260
     | 
    
        <code>name</code> attribute anymore, it's not a standard solution!</p>
 
     | 
  
  
    | 
      261
     | 
    
      
 
     | 
  
  
    | 
      262
     | 
    
      </ol>
 
     | 
  
  
    | 
      263
     | 
    
      
 
     | 
  
  
    | 
      264
     | 
    
      <p>This section applies to HTMLArea-3.0 release candidate 1 or later; prior
 
     | 
  
  
    | 
      265
     | 
    
      to this version, one needed to include more files; however, now HTMLArea is
 
     | 
  
  
    | 
      266
     | 
    
      able to include other files too (such as stylesheet, language definition
 
     | 
  
  
    | 
      267
     | 
    
      file, etc.) so you only need to define the editor path and load
 
     | 
  
  
    | 
      268
     | 
    
      "htmlarea.js".  Nice, eh? ;-)</p>
 
     | 
  
  
    | 
      269
     | 
    
      
 
     | 
  
  
    | 
      270
     | 
    
      <h3>I want to change the editor settings, how do I do that?</h3>
 
     | 
  
  
    | 
      271
     | 
    
      
 
     | 
  
  
    | 
      272
     | 
    
      <p>While it's true that all you need is one line of JavaScript to create an
 
     | 
  
  
    | 
      273
     | 
    
      htmlArea WYSIWYG editor, you can also specify more config settings in the
 
     | 
  
  
    | 
      274
     | 
    
      code to control how the editor works and looks.  Here's an example of some of
 
     | 
  
  
    | 
      275
     | 
    
      the available settings:</p>
 
     | 
  
  
    | 
      276
     | 
    
      
 
     | 
  
  
    | 
      277
     | 
    
      <pre class="code"
 
     | 
  
  
    | 
      278
     | 
    
      ><span class="keyword">var</span> <span class="variable-name">config</span> = <span class="keyword">new</span> HTMLArea.Config(); <span class="comment">// create a new configuration object
 
     | 
  
  
    | 
      279
     | 
    
      </span>                                    <span class="comment">// having all the default values
 
     | 
  
  
    | 
      280
     | 
    
      </span>config.width = '<span class="string">90%</span>';
 
     | 
  
  
    | 
      281
     | 
    
      config.height = '<span class="string">200px</span>';
 
     | 
  
  
    | 
      282
     | 
    
      
 
     | 
  
  
    | 
      283
     | 
    
      <span class="comment">// the following sets a style for the page body (black text on yellow page)
 
     | 
  
  
    | 
      284
     | 
    
      // and makes all paragraphs be bold by default
 
     | 
  
  
    | 
      285
     | 
    
      </span>config.pageStyle =
 
     | 
  
  
    | 
      286
     | 
    
        '<span class="string">body { background-color: yellow; color: black; font-family: verdana,sans-serif } </span>' +
     | 
  
  
    | 
      287
     | 
    
        '<span class="string">p { font-width: bold; } </span>';
     | 
  
  
    | 
      288
     | 
    
      
 
     | 
  
  
    | 
      289
     | 
    
      <span class="comment">// the following replaces the textarea with the given id with a new
 
     | 
  
  
    | 
      290
     | 
    
      // HTMLArea object having the specified configuration
 
     | 
  
  
    | 
      291
     | 
    
      </span>HTMLArea.replace('<span class="string">id</span>', config);</pre>
     | 
  
  
    | 
      292
     | 
    
      
 
     | 
  
  
    | 
      293
     | 
    
      <p><span class="warning">Important:</span> It's recommended that you add
 
     | 
  
  
    | 
      294
     | 
    
      custom features and configuration to a separate file.  This will ensure you
 
     | 
  
  
    | 
      295
     | 
    
      that when we release a new official version of HTMLArea you'll have less
 
     | 
  
  
    | 
      296
     | 
    
      trouble upgrading it.</p>
 
     | 
  
  
    | 
      297
     | 
    
      
 
     | 
  
  
    | 
      298
     | 
    
      <h3>How do I customize the toolbar?</h3>
 
     | 
  
  
    | 
      299
     | 
    
      
 
     | 
  
  
    | 
      300
     | 
    
      <p>Using the configuration object introduced above allows you to completely
 
     | 
  
  
    | 
      301
     | 
    
      control what the toolbar contains.  Following is an example of a one-line,
 
     | 
  
  
    | 
      302
     | 
    
      customized toolbar, much simpler than the default one:</p>
 
     | 
  
  
    | 
      303
     | 
    
      
 
     | 
  
  
    | 
      304
     | 
    
      <pre class="code"
 
     | 
  
  
    | 
      305
     | 
    
      ><span class="keyword">var</span> <span class="variable-name">config</span> = <span class="keyword">new</span> HTMLArea.Config();
 
     | 
  
  
    | 
      306
     | 
    
      config.toolbar = [
 
     | 
  
  
    | 
      307
     | 
    
        ['<span class="string">fontname</span>', '<span class="string">space</span>',
 
     | 
  
  
    | 
      308
     | 
    
         '<span class="string">fontsize</span>', '<span class="string">space</span>',
 
     | 
  
  
    | 
      309
     | 
    
         '<span class="string">formatblock</span>', '<span class="string">space</span>',
 
     | 
  
  
    | 
      310
     | 
    
         '<span class="string">bold</span>', '<span class="string">italic</span>', '<span class="string">underline</span>']
 
     | 
  
  
    | 
      311
     | 
    
      ];
 
     | 
  
  
    | 
      312
     | 
    
      HTMLArea.replace('<span class="string">id</span>', config);</pre>
     | 
  
  
    | 
      313
     | 
    
      
 
     | 
  
  
    | 
      314
     | 
    
      <p>The toolbar is an Array of Array objects.  Each array in the toolbar
 
     | 
  
  
    | 
      315
     | 
    
      defines a new line.  The default toolbar looks like this:</p>
 
     | 
  
  
    | 
      316
     | 
    
      
 
     | 
  
  
    | 
      317
     | 
    
      <pre class="code"
 
     | 
  
  
    | 
      318
     | 
    
      >config.toolbar = [
 
     | 
  
  
    | 
      319
     | 
    
      [ "<span class="string">fontname</span>", "<span class="string">space</span>",
 
     | 
  
  
    | 
      320
     | 
    
        "<span class="string">fontsize</span>", "<span class="string">space</span>",
 
     | 
  
  
    | 
      321
     | 
    
        "<span class="string">formatblock</span>", "<span class="string">space</span>",
 
     | 
  
  
    | 
      322
     | 
    
        "<span class="string">bold</span>", "<span class="string">italic</span>", "<span class="string">underline</span>", "<span class="string">separator</span>",
 
     | 
  
  
    | 
      323
     | 
    
        "<span class="string">strikethrough</span>", "<span class="string">subscript</span>", "<span class="string">superscript</span>", "<span class="string">separator</span>",
 
     | 
  
  
    | 
      324
     | 
    
        "<span class="string">copy</span>", "<span class="string">cut</span>", "<span class="string">paste</span>", "<span class="string">space</span>", "<span class="string">undo</span>", "<span class="string">redo</span>" ],
 
     | 
  
  
    | 
      325
     | 
    
      		
 
     | 
  
  
    | 
      326
     | 
    
      [ "<span class="string">justifyleft</span>", "<span class="string">justifycenter</span>", "<span class="string">justifyright</span>", "<span class="string">justifyfull</span>", "<span class="string">separator</span>",
 
     | 
  
  
    | 
      327
     | 
    
        "<span class="string">insertorderedlist</span>", "<span class="string">insertunorderedlist</span>", "<span class="string">outdent</span>", "<span class="string">indent</span>", "<span class="string">separator</span>",
 
     | 
  
  
    | 
      328
     | 
    
        "<span class="string">forecolor</span>", "<span class="string">hilitecolor</span>", "<span class="string">textindicator</span>", "<span class="string">separator</span>",
 
     | 
  
  
    | 
      329
     | 
    
        "<span class="string">inserthorizontalrule</span>", "<span class="string">createlink</span>", "<span class="string">insertimage</span>", "<span class="string">inserttable</span>", "<span class="string">htmlmode</span>", "<span class="string">separator</span>",
 
     | 
  
  
    | 
      330
     | 
    
        "<span class="string">popupeditor</span>", "<span class="string">separator</span>", "<span class="string">showhelp</span>", "<span class="string">about</span>" ]
 
     | 
  
  
    | 
      331
     | 
    
      ];</pre>
 
     | 
  
  
    | 
      332
     | 
    
      
 
     | 
  
  
    | 
      333
     | 
    
      <p>Except three strings, all others in the examples above need to be defined
 
     | 
  
  
    | 
      334
     | 
    
      in the <code>config.btnList</code> object (detailed a bit later in this
 
     | 
  
  
    | 
      335
     | 
    
      document).  The three exceptions are: 'space', 'separator' and 'linebreak'.
 
     | 
  
  
    | 
      336
     | 
    
      These three have the following meaning, and need not be present in
 
     | 
  
  
    | 
      337
     | 
    
      <code>btnList</code>:</p>
 
     | 
  
  
    | 
      338
     | 
    
      
 
     | 
  
  
    | 
      339
     | 
    
      <ul>
 
     | 
  
  
    | 
      340
     | 
    
        <li>'space' -- Inserts a space of 5 pixels (the width is configurable by external
 
     | 
  
  
    | 
      341
     | 
    
        <acronym title="Cascading Style Sheets">CSS</acronym>) at the current
 
     | 
  
  
    | 
      342
     | 
    
        position in the toolbar.</li>
 
     | 
  
  
    | 
      343
     | 
    
        <li>'separator' -- Inserts a small vertical separator, for visually grouping related
 
     | 
  
  
    | 
      344
     | 
    
        buttons.</li>
 
     | 
  
  
    | 
      345
     | 
    
        <li>'linebreak' -- Starts a new line in the toolbar.  Subsequent controls will be
 
     | 
  
  
    | 
      346
     | 
    
        inserted on the new line.</li>
 
     | 
  
  
    | 
      347
     | 
    
      </ul>
 
     | 
  
  
    | 
      348
     | 
    
      
 
     | 
  
  
    | 
      349
     | 
    
      <p><span class="warning">Important:</span> It's recommended that you add
 
     | 
  
  
    | 
      350
     | 
    
      custom features and configuration to a separate file.  This will ensure you
 
     | 
  
  
    | 
      351
     | 
    
      that when we release a new official version of HTMLArea you'll have less
 
     | 
  
  
    | 
      352
     | 
    
      trouble upgrading it.</p>
 
     | 
  
  
    | 
      353
     | 
    
      
 
     | 
  
  
    | 
      354
     | 
    
      <h3>How do I create custom buttons?</h3>
 
     | 
  
  
    | 
      355
     | 
    
      
 
     | 
  
  
    | 
      356
     | 
    
      <p>By design, the toolbar is easily extensible.  For adding a custom button
 
     | 
  
  
    | 
      357
     | 
    
      one needs to follow two steps.</p>
 
     | 
  
  
    | 
      358
     | 
    
      
 
     | 
  
  
    | 
      359
     | 
    
      <h4 id="regbtn">1. Register the button in <code>config.btnList</code>.</h4>
 
     | 
  
  
    | 
      360
     | 
    
      
 
     | 
  
  
    | 
      361
     | 
    
      <p>For each button in the toolbar, HTMLArea needs to know the following
 
     | 
  
  
    | 
      362
     | 
    
      information:</p>
 
     | 
  
  
    | 
      363
     | 
    
      <ul>
 
     | 
  
  
    | 
      364
     | 
    
        <li>a name for it (we call it the ID of the button);</li>
 
     | 
  
  
    | 
      365
     | 
    
        <li>the path to an image to be displayed in the toolbar;</li>
 
     | 
  
  
    | 
      366
     | 
    
        <li>a tooltip for it;</li>
 
     | 
  
  
    | 
      367
     | 
    
        <li>whether the button is enabled or not in text mode;</li>
 
     | 
  
  
    | 
      368
     | 
    
        <li>what to do when the button is clicked;</li>
 
     | 
  
  
    | 
      369
     | 
    
      </ul>
 
     | 
  
  
    | 
      370
     | 
    
      <p>You need to provide all this information for registering a new button
 
     | 
  
  
    | 
      371
     | 
    
      too.  The button ID can be any string identifier and it's used when
 
     | 
  
  
    | 
      372
     | 
    
      defining the toolbar, as you saw above.  We recommend starting
 
     | 
  
  
    | 
      373
     | 
    
      it with "my-" so that it won't clash with the standard ID-s (those from
 
     | 
  
  
    | 
      374
     | 
    
      the default toolbar).</p>
 
     | 
  
  
    | 
      375
     | 
    
      
 
     | 
  
  
    | 
      376
     | 
    
      <p class="note">Register button example #1</p>
 
     | 
  
  
    | 
      377
     | 
    
      
 
     | 
  
  
    | 
      378
     | 
    
      <pre class="code"
 
     | 
  
  
    | 
      379
     | 
    
      ><span class="comment">// get a default configuration
 
     | 
  
  
    | 
      380
     | 
    
      </span><span class="keyword">var</span> <span class="variable-name">config</span> = <span class="keyword">new</span> HTMLArea.Config();
 
     | 
  
  
    | 
      381
     | 
    
      <span class="comment">// register the new button using Config.registerButton.
 
     | 
  
  
    | 
      382
     | 
    
      // parameters:        button ID,   tooltip,          image,           textMode,
 
     | 
  
  
    | 
      383
     | 
    
      </span>config.registerButton("<span class="string">my-hilite</span>", "<span class="string">Highlight text</span>", "<span class="string">my-hilite.gif</span>", <span class="keyword">false</span>,
 
     | 
  
  
    | 
      384
     | 
    
      <span class="comment">// function that gets called when the button is clicked
 
     | 
  
  
    | 
      385
     | 
    
      </span>  <span class="keyword">function</span>(editor, id) {
     | 
  
  
    | 
      386
     | 
    
          editor.surroundHTML('<span class="string"><span class="hilite"></span>', '<span class="string"></span></span>');
     | 
  
  
    | 
      387
     | 
    
        }
 
     | 
  
  
    | 
      388
     | 
    
      );</pre>
 
     | 
  
  
    | 
      389
     | 
    
      
 
     | 
  
  
    | 
      390
     | 
    
      <p>An alternate way of calling registerButton is exemplified above.  Though
 
     | 
  
  
    | 
      391
     | 
    
      the code might be a little bit larger, using this form makes your code more
 
     | 
  
  
    | 
      392
     | 
    
      maintainable.  It doesn't even needs comments as it's pretty clear.</p>
 
     | 
  
  
    | 
      393
     | 
    
      
 
     | 
  
  
    | 
      394
     | 
    
      <p class="note">Register button example #2</p>
 
     | 
  
  
    | 
      395
     | 
    
      
 
     | 
  
  
    | 
      396
     | 
    
      <pre class="code"
 
     | 
  
  
    | 
      397
     | 
    
      ><span class="keyword">var</span> <span class="variable-name">config</span> = <span class="keyword">new</span> HTMLArea.Config();
 
     | 
  
  
    | 
      398
     | 
    
      config.registerButton({
     | 
  
  
    | 
      399
     | 
    
        id        : "<span class="string">my-hilite</span>",
 
     | 
  
  
    | 
      400
     | 
    
        tooltip   : "<span class="string">Highlight text</span>",
 
     | 
  
  
    | 
      401
     | 
    
        image     : "<span class="string">my-hilite.gif</span>",
 
     | 
  
  
    | 
      402
     | 
    
        textMode  : <span class="keyword">false</span>,
 
     | 
  
  
    | 
      403
     | 
    
        action    : <span class="keyword">function</span>(editor, id) {
     | 
  
  
    | 
      404
     | 
    
                      editor.surroundHTML('<span class="string"><span class="hilite"></span>', '<span class="string"></span></span>');
     | 
  
  
    | 
      405
     | 
    
                    }
 
     | 
  
  
    | 
      406
     | 
    
      });</pre>
 
     | 
  
  
    | 
      407
     | 
    
      
 
     | 
  
  
    | 
      408
     | 
    
      <p>You might notice that the "action" function receives two parameters:
 
     | 
  
  
    | 
      409
     | 
    
      <b>editor</b> and <b>id</b>.  In the examples above we only used the
 
     | 
  
  
    | 
      410
     | 
    
      <b>editor</b> parameter.  But it could be helpful for you to understand
 
     | 
  
  
    | 
      411
     | 
    
      both:</p>
 
     | 
  
  
    | 
      412
     | 
    
      
 
     | 
  
  
    | 
      413
     | 
    
      <ul>
 
     | 
  
  
    | 
      414
     | 
    
        <li><b>editor</b> is a reference to the HTMLArea object.  Since our entire
 
     | 
  
  
    | 
      415
     | 
    
        code now has an <acronym title="Object Oriented Programming">OOP</acronym>-like
 
     | 
  
  
    | 
      416
     | 
    
        design, you need to have a reference to
 
     | 
  
  
    | 
      417
     | 
    
        the editor object in order to do things with it.  In previous versions of
 
     | 
  
  
    | 
      418
     | 
    
        HTMLArea, in order to identify the object an ID was used -- the ID of the
 
     | 
  
  
    | 
      419
     | 
    
        HTML element.  In this version ID-s are no longer necessary.</li>
 
     | 
  
  
    | 
      420
     | 
    
      
 
     | 
  
  
    | 
      421
     | 
    
        <li><b>id</b> is the button ID.  Wondering why is this useful?  Well, you
 
     | 
  
  
    | 
      422
     | 
    
        could use the same handler function (presuming that it's not an anonymous
 
     | 
  
  
    | 
      423
     | 
    
        function like in the examples above) for more buttons.  You can <a
 
     | 
  
  
    | 
      424
     | 
    
        href="#btnex">see an example</a> a bit later in this document.</li>
 
     | 
  
  
    | 
      425
     | 
    
      </ul>
 
     | 
  
  
    | 
      426
     | 
    
      
 
     | 
  
  
    | 
      427
     | 
    
      <h4>2. Inserting it into the toolbar</h4>
 
     | 
  
  
    | 
      428
     | 
    
      
 
     | 
  
  
    | 
      429
     | 
    
      <p>At this step you need to specify where in the toolbar to insert the
 
     | 
  
  
    | 
      430
     | 
    
      button, or just create the whole toolbar again as you saw in the previous
 
     | 
  
  
    | 
      431
     | 
    
      section.  You use the button ID, as shown in the examples of customizing the
 
     | 
  
  
    | 
      432
     | 
    
      toolbar in the previous section.</p>
 
     | 
  
  
    | 
      433
     | 
    
      
 
     | 
  
  
    | 
      434
     | 
    
      <p>For the sake of completion, following there are another examples.</p>
 
     | 
  
  
    | 
      435
     | 
    
      
 
     | 
  
  
    | 
      436
     | 
    
      <p class="note">Append your button to the default toolbar</p>
 
     | 
  
  
    | 
      437
     | 
    
      
 
     | 
  
  
    | 
      438
     | 
    
      <pre class="code"
 
     | 
  
  
    | 
      439
     | 
    
      >config.toolbar.push([ "<span class="string">my-hilite</span>" ]);</pre>
 
     | 
  
  
    | 
      440
     | 
    
      
 
     | 
  
  
    | 
      441
     | 
    
      <p class="note">Customized toolbar</p>
 
     | 
  
  
    | 
      442
     | 
    
      
 
     | 
  
  
    | 
      443
     | 
    
      <pre class="code"
 
     | 
  
  
    | 
      444
     | 
    
      >config.toolbar = [
 
     | 
  
  
    | 
      445
     | 
    
        ['<span class="string">fontname</span>', '<span class="string">space</span>',
 
     | 
  
  
    | 
      446
     | 
    
         '<span class="string">fontsize</span>', '<span class="string">space</span>',
 
     | 
  
  
    | 
      447
     | 
    
         '<span class="string">formatblock</span>', '<span class="string">space</span>',
 
     | 
  
  
    | 
      448
     | 
    
         '<span class="string">separator</span>', '<span class="string">my-hilite</span>', '<span class="string">separator</span>', '<span class="string">space</span>', <span class="comment">// here's your button
 
     | 
  
  
    | 
      449
     | 
    
      </span>   '<span class="string">bold</span>', '<span class="string">italic</span>', '<span class="string">underline</span>', '<span class="string">space</span>']
 
     | 
  
  
    | 
      450
     | 
    
      ];</pre>
 
     | 
  
  
    | 
      451
     | 
    
      
 
     | 
  
  
    | 
      452
     | 
    
      <p><span class="note">Note:</span> in the example above our new button is
 
     | 
  
  
    | 
      453
     | 
    
      between two vertical separators.  But this is by no means required.  You can
 
     | 
  
  
    | 
      454
     | 
    
      put it wherever you like.  Once registered in the btnList (<a
 
     | 
  
  
    | 
      455
     | 
    
      href="#regbtn">step 1</a>) your custom button behaves just like a default
 
     | 
  
  
    | 
      456
     | 
    
      button.</p>
 
     | 
  
  
    | 
      457
     | 
    
      
 
     | 
  
  
    | 
      458
     | 
    
      <p><span class="warning">Important:</span> It's recommended that you add
 
     | 
  
  
    | 
      459
     | 
    
      custom features and configuration to a separate file.  This will ensure you
 
     | 
  
  
    | 
      460
     | 
    
      that when we release a new official version of HTMLArea you'll have less
 
     | 
  
  
    | 
      461
     | 
    
      trouble upgrading it.</p>
 
     | 
  
  
    | 
      462
     | 
    
      
 
     | 
  
  
    | 
      463
     | 
    
      <h4 id="btnex">A complete example</h4>
 
     | 
  
  
    | 
      464
     | 
    
      
 
     | 
  
  
    | 
      465
     | 
    
      <p>Please note that it is by no means necessary to include the following
 
     | 
  
  
    | 
      466
     | 
    
      code into the htmlarea.js file.  On the contrary, it might not work there.
 
     | 
  
  
    | 
      467
     | 
    
      The configuration system is designed such that you can always customize the
 
     | 
  
  
    | 
      468
     | 
    
      editor <em>from outside files</em>, thus keeping the htmlarea.js file
 
     | 
  
  
    | 
      469
     | 
    
      intact.  This will make it easy for you to upgrade your HTMLArea when we
 
     | 
  
  
    | 
      470
     | 
    
      release a new official version.  OK, I promise it's the last time I said
 
     | 
  
  
    | 
      471
     | 
    
      this. ;)</p>
 
     | 
  
  
    | 
      472
     | 
    
      
 
     | 
  
  
    | 
      473
     | 
    
      <pre class="code"
 
     | 
  
  
    | 
      474
     | 
    
      ><span class="comment">// All our custom buttons will call this function when clicked.
 
     | 
  
  
    | 
      475
     | 
    
      // We use the <b>buttonId</b> parameter to determine what button
 
     | 
  
  
    | 
      476
     | 
    
      // triggered the call.
 
     | 
  
  
    | 
      477
     | 
    
      </span><span class="keyword">function</span> <span class="function-name">clickHandler</span>(editor, buttonId) {
     | 
  
  
    | 
      478
     | 
    
        <span class="keyword">switch</span> (buttonId) {
     | 
  
  
    | 
      479
     | 
    
          <span class="keyword">case</span> "<span class="string">my-toc</span>":
 
     | 
  
  
    | 
      480
     | 
    
            editor.insertHTML("<span class="string"><h1>Table Of Contents</h1></span>");
 
     | 
  
  
    | 
      481
     | 
    
            <span class="keyword">break</span>;
 
     | 
  
  
    | 
      482
     | 
    
          <span class="keyword">case</span> "<span class="string">my-date</span>":
 
     | 
  
  
    | 
      483
     | 
    
            editor.insertHTML((<span class="keyword">new</span> Date()).toString());
 
     | 
  
  
    | 
      484
     | 
    
            <span class="keyword">break</span>;
 
     | 
  
  
    | 
      485
     | 
    
          <span class="keyword">case</span> "<span class="string">my-bold</span>":
 
     | 
  
  
    | 
      486
     | 
    
            editor.execCommand("<span class="string">bold</span>");
 
     | 
  
  
    | 
      487
     | 
    
            editor.execCommand("<span class="string">italic</span>");
 
     | 
  
  
    | 
      488
     | 
    
            <span class="keyword">break</span>;
 
     | 
  
  
    | 
      489
     | 
    
          <span class="keyword">case</span> "<span class="string">my-hilite</span>":
 
     | 
  
  
    | 
      490
     | 
    
            editor.surroundHTML("<span class="string"><span class=\"hilite\"></span>", "<span class="string"></span></span>");
 
     | 
  
  
    | 
      491
     | 
    
            <span class="keyword">break</span>;
 
     | 
  
  
    | 
      492
     | 
    
        }
 
     | 
  
  
    | 
      493
     | 
    
      };
 
     | 
  
  
    | 
      494
     | 
    
      
 
     | 
  
  
    | 
      495
     | 
    
      <span class="comment">// Create a new configuration object
 
     | 
  
  
    | 
      496
     | 
    
      </span><span class="keyword">var</span> <span class="variable-name">config</span> = <span class="keyword">new</span> HTMLArea.Config();
 
     | 
  
  
    | 
      497
     | 
    
      
 
     | 
  
  
    | 
      498
     | 
    
      <span class="comment">// Register our custom buttons
 
     | 
  
  
    | 
      499
     | 
    
      </span>config.registerButton("<span class="string">my-toc</span>",  "<span class="string">Insert TOC</span>", "<span class="string">my-toc.gif</span>", <span class="keyword">false</span>, clickHandler);
 
     | 
  
  
    | 
      500
     | 
    
      config.registerButton("<span class="string">my-date</span>", "<span class="string">Insert date/time</span>", "<span class="string">my-date.gif</span>", <span class="keyword">false</span>, clickHandler);
 
     | 
  
  
    | 
      501
     | 
    
      config.registerButton("<span class="string">my-bold</span>", "<span class="string">Toggle bold/italic</span>", "<span class="string">my-bold.gif</span>", <span class="keyword">false</span>, clickHandler);
 
     | 
  
  
    | 
      502
     | 
    
      config.registerButton("<span class="string">my-hilite</span>", "<span class="string">Hilite selection</span>", "<span class="string">my-hilite.gif</span>", <span class="keyword">false</span>, clickHandler);
 
     | 
  
  
    | 
      503
     | 
    
      
 
     | 
  
  
    | 
      504
     | 
    
      <span class="comment">// Append the buttons to the default toolbar
 
     | 
  
  
    | 
      505
     | 
    
      </span>config.toolbar.push(["<span class="string">linebreak</span>", "<span class="string">my-toc</span>", "<span class="string">my-date</span>", "<span class="string">my-bold</span>", "<span class="string">my-hilite</span>"]);
 
     | 
  
  
    | 
      506
     | 
    
      
 
     | 
  
  
    | 
      507
     | 
    
      <span class="comment">// Replace an existing textarea with an HTMLArea object having the above config.
 
     | 
  
  
    | 
      508
     | 
    
      </span>HTMLArea.replace("<span class="string">textAreaID</span>", config);</pre>
 
     | 
  
  
    | 
      509
     | 
    
      
 
     | 
  
  
    | 
      510
     | 
    
      
 
     | 
  
  
    | 
      511
     | 
    
      <hr />
 
     | 
  
  
    | 
      512
     | 
    
      <address>© <a href="http://interactivetools.com" title="Visit our website"
 
     | 
  
  
    | 
      513
     | 
    
      >InteractiveTools.com</a> 2002-2004.
 
     | 
  
  
    | 
      514
     | 
    
      <br />
 
     | 
  
  
    | 
      515
     | 
    
      © <a href="http://dynarch.com">dynarch.com</a> 2003-2004<br />
 
     | 
  
  
    | 
      516
     | 
    
      HTMLArea v3.0 developed by <a
 
     | 
  
  
    | 
      517
     | 
    
      href="http://dynarch.com/mishoo/">Mihai Bazon</a>.
 
     | 
  
  
    | 
      518
     | 
    
      <br />
 
     | 
  
  
    | 
      519
     | 
    
      Documentation written by Mihai Bazon.
 
     | 
  
  
    | 
      520
     | 
    
      </address>
 
     | 
  
  
    | 
      521
     | 
    
      <!-- hhmts start --> Last modified: Wed Jan 28 12:18:23 EET 2004 <!-- hhmts end -->
 
     | 
  
  
    | 
      522
     | 
    
      <!-- doc-lang: English -->
 
     | 
  
  
    | 
      523
     | 
    
      </body> </html>
 
     |