| 1 | 
        
            4
         | 
        
            ryan
         | 
        <!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>
  |