Advertisement
Guest User

http.txt

a guest
Feb 2nd, 2017
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 73.58 KB | None | 0 0
  1. HTTP/1.1 200 OK
  2. Accept-Ranges:bytes
  3. Accept-Ranges:bytes
  4. Age:0
  5. Connection:keep-alive
  6. Content-Length:74002
  7. Content-Type:text/html
  8. Date:Thu, 02 Feb 2017 07:55:14 GMT
  9. Server:Apache/2
  10.  
  11. <HTML>
  12. <HEAD>
  13. <TITLE>Connection Muse User's Guide</TITLE>
  14. <meta name="Microsoft Border" content="lr">
  15. </HEAD>
  16. <BODY BGCOLOR="#E3E3E3"><!--msnavigation--><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td valign="top" width="1%">
  17. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; </p>
  18. <p>&nbsp;</p>
  19. </td><td valign="top" width="24"></td><!--msnavigation--><td valign="top">
  20. <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</P>
  21. <H2 ALIGN="center">Word Circuits Connection Muse<BR>
  22. User's Guide</H2>
  23.  
  24. <P ALIGN="center"> Version 1.0</P>
  25.  
  26. <P ALIGN="center">Copyright (c) 2000 - 2005<br>
  27. Jean-Hugues R&eacute;ty and Robert Kendall</P>
  28. <P ALIGN="center">&nbsp;</P>
  29. <H2 ALIGN="center"><A NAME="GettingStarted"></A>Getting Started</H2>
  30. <P ALIGN="center">&nbsp;</P>
  31. <h3 ALIGN="left"><a name="Terms"></a>Terms of Use</h3>
  32. <P ALIGN="left"> Connection Muse is free open-source software that you may
  33. use without charge and freely distribute to other users in accordance with
  34. the
  35. <a href="license.htm" target="_blank">GNU General Public License</a>. If you
  36. use the system in a published hypertext, we ask that you include a
  37. credit
  38. on the title page or credits page. For example:</P>
  39. <P ALIGN="left">&quot;This work uses the Word
  40. Circuits Connection Muse&quot;</P>
  41. <P ALIGN="left">We would also appreciate a link back to the Connection Muse
  42. Web site at http://www.wordcircuits.com/connect.</P>
  43. <P ALIGN="left">&nbsp;</P>
  44. <H3 ALIGN="left"><A NAME="HowItWorks"></A>How the System Works</H3>
  45. <P ALIGN="left"> Connection Muse consists of two components: the Connection
  46. Library and the Connection Toolkit. The Library is a collection of JavaScript
  47. functions contained in a file called <I>connect.js.</I>
  48. This is the code that makes the system work and it must be loaded by any HTML
  49. document in which you wish to use Connection features. The Toolkit aids you in
  50. adding Connection elements to your hypertexts.</P>
  51. <P ALIGN="left">Connection elements (such as Conditional Links or randomly generated
  52. text) are created by inserting JavaScript functions into your text at appropriate
  53. places. When the document is viewed in a browser, the JavaScript functions you
  54. have added call the main library to perform their tasks. You can add Connection
  55. functions to your work in two ways. You can type in the JavaScript functions
  56. manually or you can use one of the Connection Tools to automatically generate
  57. the function code you need.</P>
  58. <P ALIGN="left">Many of Connection Muse's features rely upon a reading history
  59. that is created while your hypertext is read. The history is a list of all the
  60. nodes (that is, HTML pages) that have been visited during a reading and it is
  61. updated every time a new node is viewed by the browser. The history is stored
  62. in a cookie, which is a collection of data that a browser can save on the hard
  63. disk after visiting a Web site. Your readers must therefore have cookies enabled
  64. on their browsers for Connection Muse to work properly. They must also
  65. have JavaScript enabled.</P>
  66. <P ALIGN="left">&nbsp;</P>
  67. <h3 ALIGN="left"><a name="Demos" id="Demos"></a>Demos</h3>
  68. <P ALIGN="left">To see Connection Muse in action, you can run the Connection
  69. Muse Demos:</P>
  70. <P ALIGN="left">The <a href="demos/simple/index.html" target="_blank">Simple
  71. Demo</a> presents the basics of Connection Muse link and text functions.</P>
  72. <P ALIGN="left">The <a href="demos/components/start.htm" target="_blank">Component
  73. Demo</a> presents some more sophisticated approaches. There are two windows
  74. in this demo, and you can read the story either by clicking on links in
  75. the main window or clicking on the squares in the Story Component
  76. window
  77. that appears at the left of the screen. <a href="#Component_Demo">More about this demo</a>.</P>
  78. <P ALIGN="left">&nbsp;</P>
  79. <h3 ALIGN="left"> <a name="Limitations"></a>System Limitations</h3>
  80. <P ALIGN="left">Currently a history record can safely contain a maximum of about
  81. 1,400 nodes. This limit is the result of restrictions imposed on cookie length
  82. by Microsoft Internet Explorer. To achieve this maximum history capacity, the
  83. author must create a list of node names that the system will use to generate
  84. short IDs for nodes. If the list of node names is not created, the history record
  85. will be limited to approximately 400-1,000 nodes with Microsoft Internet Explorer
  86. and about 8,000-16,000 nodes with Netscape Navigator. The exact number of nodes
  87. that can be accommodated depends upon the length of HTML filenames that are
  88. used in the hypertext. (Netscape Navigator will support a history record up
  89. to 80,000 characters long, while Microsoft Internet Explorer limits the history
  90. to 4,000 characters.) Without the list of node names, performance may also be
  91. slow with very large hypertexts.</P>
  92. <P ALIGN="left">&nbsp;</P>
  93. <h2 ALIGN="center"><A NAME="Preparing"></A>Preparing Your Hypertext to Use the
  94. System</h2>
  95. <p ALIGN="center">&nbsp;</p>
  96. <h3><a name="Basic_Procedures"></a>Basic Procedures</h3>
  97. <P>1. <B>Copying the System Files</B>
  98. <P>The Connection Muse system files are contained in the compressed file <i><a href="http://www.wordcircuits.com/connect/MuseDoc&Files1.zip">MuseDoc&amp;Files1.zip</a></i> in
  99. a folder called <i>system</i>.
  100. <P>It is easiest to use the system if all the HTML files that constitute your
  101. hypertext are in one directory, though the system does support multiple directories.
  102. Copy the system files <I>connect.js</I> and <I>config.js</I> into the directory
  103. where your hypertext is located (or the root directory of your hypertext if
  104. it uses multiple directories).
  105. <P><B>2. Editing the Configuration File</B>
  106. <P>Open <I>config.js</I> in an ASCII text editor (such as Notepad in Windows or
  107. SimpleText on the Mac). This file contains the configuration information for
  108. your hypertext. Find the following line:
  109. <P><CODE>histCookieName = &quot;HypertextName&quot;</CODE>
  110. <P>Change <CODE>HypertextName</CODE> to a name that represents your hypertext.
  111. The name cannot include spaces, commas, or semicolons. Be sure to leave the
  112. quotation marks intact.
  113. <P>You will
  114. also see a line that reads as follows:
  115. <P><CODE>totalNodes = 0</CODE>
  116. <P>This tells the system how many nodes your hypertext contains. Providing this
  117. information is only necessary if you wish to use functions that determine how
  118. much of the total work has been read. If you wish to use these features, change
  119. the &quot;0&quot; to the total number of nodes. (Do not put quotation marks
  120. around the number.) If the number of nodes changes, you will have to manually
  121. change this number, so it is best to wait until the work is finished before
  122. you set this variable.
  123. <P><B>3. Adding the Library-Loading Code</B></P>
  124. <P>Any HTML page that makes use of Connection System features must contain in
  125. its header the JavaScript code that loads the two system files (<i>connect.js</i>
  126. and <i>config.js</i>). Any node you want recorded in the history must also load
  127. these files. Each time <i>connect.js</i> is loaded, the node that loads it is
  128. added to the history. If you are working with a very large hypertext and want
  129. to use the features designed to accommodate large works, skip the rest of this
  130. section and follow the instructions in the next section, <a href="#Large_Hypertexts">Working
  131. with Very Large Hypertexts</a>. If your hypertext contains multiple directories,
  132. see <a href="#Multiple_Directories">Working with Multiple Directories</a>.</P>
  133. <P><B>If you are beginning a new hypertext. </B>Use the file <I>template.htm</I>
  134. as a template for creating any new page that should load the system files. This
  135. is a blank HTML page that contains the code for loading the files.</P>
  136. <P><B>If you are adding Connection System features to an existing hypertext.</B>
  137. You must add the appropriate code to each page that should load the system files.
  138. To add this code, view your document in ASCII or HTML editing mode and insert
  139. the following text between the <CODE>&lt;HEAD&gt;</CODE> and <CODE>&lt;/HEAD&gt;</CODE>
  140. tags:</P>
  141. <P><CODE>&lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;config.js&quot;&gt;&lt;/SCRIPT><BR>
  142. &lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;connect.js&quot;&gt;&lt;/SCRIPT></CODE>
  143. <P>The
  144. easiest way to do this is to use a text editor or HTML editor to perform a
  145. global search and replace on all the HTML files in your hypertext. Replace this
  146. text:<P> <CODE>&lt;/HEAD&gt;</CODE>
  147. <P>with this text:
  148. <P><CODE>&lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;config.js&quot;&gt;&lt;/SCRIPT><BR>
  149. &lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;connect.js&quot;&gt;&lt;/SCRIPT><BR>
  150. &lt;/HEAD&gt;</CODE>
  151. <P>
  152. <h3 ALIGN="LEFT"><b><a name="Large_Hypertexts"></a></b>Working with Very Large
  153. Hypertexts </h3>
  154. <P ALIGN="LEFT">Connection Muse provides special features for accommodating
  155. very large hypertexts containing more than 100 nodes or so. These features improve
  156. performance and allow history records of up to about 1400 nodes. (See <a href="#Limitations">System
  157. Limitations</a> for more about history length limits.)
  158. <P ALIGN="LEFT"><b>Short IDs</b>
  159. <P ALIGN="LEFT">To allow more history information to be stored in the history
  160. record, the system can substitute 1-3 character IDs for full filenames. To use
  161. this feature, you must create an array (or list) containing the filename of
  162. every node in your hypertext. To do this, you must add a line to the end of
  163. your config.js file using the following syntax:
  164. <P ALIGN="LEFT"><code>var nodesList = [<i>filename1, filename2,...filenameN</i>]</code>
  165. <P ALIGN="LEFT">Replace <code><i>filename1, filename2,</i></code> and so on, with
  166. the names of the files in your piece. If the nodes in your piece were called
  167. &quot;node1.htm,&quot; &quot;node2.htm,&quot; &quot;node3.htm,&quot; &quot;node4.htm,&quot;
  168. and &quot;node5.htm,&quot; the added line would look like this:
  169. <P ALIGN="LEFT"><code>var nodesList = [&quot;node1.htm&quot;, &quot;node2.htm&quot;,
  170. &quot;node3.htm&quot;, &quot;node4.htm&quot;, &quot;node5.htm&quot;]</code>
  171. <P ALIGN="LEFT">If you accidentally omit a few filenames from the list, this will
  172. not cause any errors in program execution but will reduce the amount of space
  173. available in the history record.
  174. <P ALIGN="LEFT">It's recommended that you store the short IDs in a Persistent
  175. System Frame, as described in the next section. This will guarantee the fastest
  176. performance.
  177. <P ALIGN="LEFT">If you choose not to use a Persistent System Frame, you must follow
  178. these steps: Copy the file <i>ids.js</i> from the <i>frame</i> folder (which
  179. is located inside the <i>system</i> folder) into the directory where your hypertext
  180. is located (or the root directory of your hypertext if it uses multiple directories).
  181. Then add the appropriate code to your hypertext so that each page loads <i>ids.js</i>.
  182. Open each page in ASCII or HTML editing mode and insert the following text between
  183. the <code>&lt;HEAD&gt;</code> and <code>&lt;/HEAD&gt;</code> tags:
  184. <p><code>&lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;ids.js&quot;&gt;&lt;/SCRIPT></code>
  185. <p>Alternatively you can do a global search and replace to make these changes.
  186. <P ALIGN="LEFT"><b>Persistent System Frames</b>
  187. <P ALIGN="LEFT">To improve performance and simplify working with Short IDs or
  188. multiple directories, you can create a frame in your hypertext that is used
  189. solely to store system information so that this information won't have to be
  190. reloaded every time a new page is displayed.
  191. <P ALIGN="LEFT">If you are not using short IDs, copy all the files from the <i>frame</i>
  192. folder (which is located inside the <i>system</i> folder) into the directory
  193. where your hypertext is located (or the root directory of your hypertext if
  194. it uses multiple directories). If you are using short IDs, copy all the files
  195. from the <i>frame_ids</i> folder (which is also located inside the <i>system</i>
  196. folder) into the directory where your hypertext is located.
  197. <P ALIGN="LEFT">The file <i>frameset.htm</i> (or <i>frameset_ids.htm</i> if you
  198. are using short IDs) contains a frameset containing a Persistent System Frame.
  199. You can use this frameset as the starting file for the hypertext. (You can rename
  200. this file to anything you want.)
  201. <P ALIGN="LEFT">If you want to add a Persistent System Frame to an existing frameset
  202. rather than using <i>frameset.htm</i> or <i>frameset_ids.htm</i>, you must name
  203. the new frame &quot;systemFrame.&quot; Since this frame will be used only to
  204. store variable values, you should locate it in an unobtrusive place, such as
  205. at the bottom of the window, and set its size to &quot;1&quot; (which is the
  206. smallest size value the browser will accept). This new frame must then load
  207. the file <i>system.htm</i> (or <i>system_ids.htm</i> if you are using short
  208. IDs).
  209. <P ALIGN="LEFT"><i>start.htm</i> will be the first node in your hypertext, so
  210. you can modify this file as appropriate. (If you rename this file, you will
  211. also have to revise the frame definition in <i>frameset.htm</i> or <i>frameset_ids.htm</i>
  212. accordingly.) Each new node in your hypertext should be created from a copy
  213. of <i>frame_template.htm</i>. Both <i>start.htm</i> and <i>frame_template.htm</i>
  214. are blank pages containing JavaScript in their headers.
  215. <P ALIGN="LEFT"> If you are adding the Persistent System Frame to an existing
  216. hypertext, you must update all the pages in the hypertext so that each file
  217. contains the following lines of code in its header (between the <code>&lt;HEAD&gt;</code>
  218. and <code>&lt;/HEAD&gt;</code> tags):
  219. <P ALIGN="LEFT"><code>&lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;config.js&quot;&gt;&lt;/SCRIPT><br>
  220. &lt;SCRIPT LANGUAGE=&quot;javascript&quot;&gt;var connectWin=parent.systemFrame&lt;/SCRIPT><br>
  221. &lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;connect-f.js&quot;&gt;&lt;/SCRIPT></code>
  222. <p>The easiest way to do this is to use a text editor or HTML editor to perform
  223. a global search and replace on all the HTML files in your hypertext. Replace
  224. this text:
  225. <p> <code>&lt;/HEAD&gt;</code>
  226. <p>with this text:
  227. <p><code>&lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;config.js&quot;&gt;&lt;/SCRIPT><br>
  228. &lt;SCRIPT LANGUAGE=&quot;javascript&quot;&gt;var connectWin=parent.systemFrame&lt;/SCRIPT><br>
  229. &lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;connect-f.js&quot;&gt;&lt;/SCRIPT><br>
  230. &lt;/HEAD&gt;</code>
  231. <p>Note that if your files already contain this line:
  232. <p><code>&lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;connect.js&quot;&gt;&lt;/SCRIPT></code>
  233. <p>you should delete it. This line should only appear in <i>system.htm</i>.
  234. <p>
  235. <h3 ALIGN="LEFT"><a name="Multiple_Directories"></a>Working with Multiple Directories</h3>
  236. <P ALIGN="LEFT">If your hypertext files are contained within more than one directory,
  237. put Connection Muse files in the root directory. Then follow the appropriate
  238. instructions below, depending upon whether or not you are using a Persistent
  239. System Frame.
  240. <P ALIGN="LEFT"><b>When Using a Persistent System Frame</b>
  241. <P ALIGN="LEFT">Any new pages added to subdirectories under the root directory
  242. must be created from copies of the file <i>subdir_frame_template.htm</i> (which
  243. is located inside the <i>system/subdir</i> folder). For example, if the root
  244. directory is <code>/hypertext</code> and you create new pages in a directory
  245. called <code>/hypertext/chapter1</code>, these pages must be based upon <i>subdir_frame_template.htm.</i>
  246. <P ALIGN="LEFT">Any pages not based upon the template must have the following
  247. lines of code added to their headers:
  248. <p align="LEFT"> <code>&lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;../config.js&quot;&gt;&lt;/SCRIPT><br>
  249. &lt;SCRIPT LANGUAGE=&quot;javascript&quot;&gt;var connectWin=parent.systemFrame&lt;/SCRIPT></code><code><br>
  250. &lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;../connect-f.js&quot;&gt;&lt;/SCRIPT></code>
  251. <P ALIGN="LEFT"><b>When Not Using a Persistent System Frame</b>
  252. <P ALIGN="LEFT">Any new pages added to subdirectories under the root directory
  253. must be created from copies of the file <i>subdir_template.htm</i> (which is
  254. located inside the <i>system/subdir</i> folder).
  255. <P ALIGN="LEFT">Any pages not based upon the template must have the following
  256. lines of code added to their headers:
  257. <P ALIGN="LEFT"><code>&lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;../config.js&quot;&gt;&lt;/SCRIPT><br>
  258. &lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;../connect.js&quot;&gt;&lt;/SCRIPT></code>
  259. <P ALIGN="LEFT">The following line must be added to <i>config.js</i>:
  260. <P ALIGN="LEFT"><code>var baseDirectory=&quot;<i>directoryName</i>&quot;</code>
  261. <P ALIGN="LEFT"> <code><i>directoryName</i></code> should be the name of the root
  262. directory. For example, if the root directory is <code>/hypertext</code>, the
  263. line should read:
  264. <P ALIGN="LEFT"><code>var baseDirectory=&quot;hypertext&quot;</code>
  265. <P ALIGN="LEFT"><b>When Using More Than One Level of Subdirectory</b>
  266. <P ALIGN="LEFT">Any pages located in a subdirectory within a subdirectory (for
  267. example, in <CODE>/hypertext/chapter1/part1</CODE>) must use <code>../../</code>
  268. instead of <code>../</code> in their header code, as in the following example:
  269. <P ALIGN="LEFT"><CODE>&lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;../../config.js&quot;&gt;&lt;/SCRIPT><BR>
  270. &lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;../../connect.js&quot;&gt;&lt;/SCRIPT></CODE>
  271. <P ALIGN="LEFT"><b>Node Names</b>
  272. <P ALIGN="LEFT">Whenever a node name is used in an array or as a parameter to
  273. a function, it should be preceded by a forward slash (/) and include the directory
  274. name if the node is not located in the root directory. For example, if <i>node1.htm</i>
  275. is located in <code>/hypertext</code> and <code>/hypertext</code> is the root
  276. directory, the correct name for it would be &quot;/node1.htm&quot; in a function
  277. such as this:
  278. <P ALIGN="LEFT"><code>link(&quot;/node1.htm&quot;, &quot;click here&quot;)</code>
  279. <P ALIGN="LEFT">If <i>node1.htm</i> is located in <code>/hypertext/chapter1</code>,
  280. the correct name for it would be &quot;/chapter1/node1.htm&quot;:
  281. <P ALIGN="LEFT"><code>link(&quot;/chapter1/node1.htm&quot;, &quot;click here&quot;)</code>
  282. <P ALIGN="LEFT">
  283. <h3 ALIGN="LEFT"><a name="Entry_Page"></a>Preparing an Entry Page</h3>
  284. <P ALIGN="LEFT">When a reader returns to your hypertext after having read part
  285. of it, you may want the opening page to give that reader the options of continuing
  286. the reading where it was left off or starting a new reading from the beginning.
  287. You can do this by creating an Entry Page. If the reader has not read any of
  288. the hypertext, when the Entry Page is loaded it displays a link labeled &quot;Come
  289. In,&quot; which leads to the first node of the hypertext. If the reader is returning
  290. to the hypertext, the following message and options will be presented when the
  291. Entry Page is loaded:</P>
  292. <TABLE WIDTH="85%" BORDER="1">
  293. <TR>
  294. <TD> <BR>
  295. You have returned to a reading in progress. Choose an option:
  296. <UL>
  297. <LI>Resume the reading where you left off.</LI>
  298. <LI>Start over and delete the current history.</LI>
  299. </UL>
  300. </TD>
  301. </TR>
  302. </TABLE>
  303. <P ALIGN="LEFT">Clicking on the first option takes the reader to the last node
  304. read during the previous reading session. Clicking on the second option deletes
  305. the history record and takes the reader to the first node of the hypertext.
  306. <P ALIGN="LEFT">The Entry Page will also present the reader with a list of filenames
  307. of all the nodes that have been read. If you create a <a href="#Title_Array">Title
  308. Array</a>, the titles of nodes will be included in the list as well.
  309. <P ALIGN="LEFT">Letting the reader delete the history record when starting a new
  310. reading ensures that all the functions will perform accurately and keeps the
  311. record from becoming longer than necessary and slowing down performance. It
  312. also will prevent the reader from filling up the history record when rereading
  313. a very long hypertext.
  314. <P ALIGN="LEFT">Follow these steps to create an Entry Page:
  315. <OL>
  316. <LI> Copy <i>entry.htm</i> (located in the <i>system</i> folder) into the directory
  317. that contains your hypertext. If you are using a Persistent System Frame,
  318. copy the file <i>entry-f.htm</i> (located in the <i>frame</i> folder within
  319. the <i>system</i> folder) instead, if it has not already been copied into
  320. your hypertext directory. <BR>
  321. <BR>
  322. </LI>
  323. <LI>Open this file in an ASCII text editor (or in HTML source editing mode in
  324. your HTML editor) and find the following line:<BR>
  325. <BR>
  326. <CODE>firstNode="node.htm"</CODE><BR>
  327. <BR>
  328. Change <CODE>"node.htm"</CODE> to the name of the node that starts your hypertext.<BR>
  329. <BR>
  330. </LI>
  331. <LI>Copy the file entry.js into your hypertext directory.<BR>
  332. <BR>
  333. </LI>
  334. <LI>Add any desired text or formatting elements to complete the entry page.</LI>
  335. </OL>
  336. <p>&nbsp;</p>
  337. <h3 ALIGN="LEFT"><a name="Excluding_a_Page"></a>Excluding Pages from the History</h3>
  338. <P ALIGN="LEFT">There may be times when you wish to use Connection functions in
  339. a page but don't want that page to be recorded as part of the history. To prevent
  340. a page from being recorded in the history record when it loads <I>connect.js,</I>
  341. you can add the expression &quot;<CODE>var noHistUpdate = true</CODE>&quot;
  342. to the page's header before the line that loads <I>connect.js</I>, in the following
  343. manner:
  344. <P ALIGN="LEFT"><CODE>&lt;SCRIPT LANGUAGE=&quot;javascript&quot;&gt;var noHistUpdate
  345. = true&lt;/SCRIPT><BR>
  346. &lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;config.js&quot;&gt;&lt;/SCRIPT><BR>
  347. &lt;SCRIPT LANGUAGE=&quot;javascript&quot; SRC=&quot;connect.js&quot;&gt;&lt;/SCRIPT></CODE>
  348. <P ALIGN="LEFT">If you are not using any of the functions that depend upon the
  349. history record, you can add the following line to the <i>config.js</i> file
  350. to prevent any nodes from being recorded in the history:
  351. <P ALIGN="LEFT"><code>var noHistUpdate = true</code>
  352. <P ALIGN="LEFT">
  353. <H2 ALIGN="center"><A NAME="Toolkit"></A>The Connection Toolkit</H2>
  354. <P ALIGN="center">
  355. <P ALIGN="left">The Connection Toolkit provides the easiest method for working
  356. with the system. There are two versions of the toolkit, one that is an add-on
  357. for Dreamweaver and one that runs in a Web browser. The Dreamweaver version
  358. is the more sophisticated of the two, while the browser version will work with
  359. any editor. The basic functionality of the two versions is the same.
  360. <P ALIGN="left">Both versions of the toolkit generate not only function code but
  361. also explanatory comments for each function so that the workings of all Connection
  362. System elements will be fully documented within the hypertext itself. This is
  363. important for archival purposes.
  364. <P ALIGN="left">Currently not all Connection System features are supported by
  365. the Toolkit. Some elements can only be implemented by manually inserting JavaScript
  366. code in your document (see <A HREF="reference.htm">Function Reference</A>).
  367. <P ALIGN="left">
  368. <H3 ALIGN="left"><A NAME="DreamweaverToolkit"></A>Connection Toolkit for Dreamweaver</H3>
  369. <P ALIGN="left">Before you can use the Connection Toolkit for Dreamweaver, it
  370. must be properly installed.
  371. <P ALIGN="left"><FONT FACE="times new roman, Times New Roman, Times"><B><A NAME="Installation"></A>To install
  372. the Toolkit for Dreamweaver:</B></FONT>
  373. <OL>
  374. <LI>In Dreamweaver, go to the Commands menu and select Manage Extesions. This
  375. will open the Dreamweaver Extension Manager.</LI>
  376. <LI>In the Extension Manager go to the File menu and select Install Extension.
  377. Select the file <i><a href="http://www.wordcircuits.com/connect/ConnectionMuse1.mxp">ConnectionMuse1.mxp</a></i> and
  378. click Install.</LI>
  379. <LI>Follow the prompts to install the Connection Muse Extensions.</LI>
  380. <LI>Close the Extension Manager when you're done. </LI>
  381. <LI><FONT FACE="times new roman, Times New Roman, Times">If Dreamweaver is currently
  382. running, you must exit the program and restart it before you can use the Toolkit.</FONT></LI>
  383. </OL>
  384. <P ALIGN="left"><B>To add a Connection element to your hypertext:</B></P>
  385. <OL>
  386. <LI>
  387. <P ALIGN="left">Choose ConditionalLink in the Insert bar, either by clicking
  388. on the appropriate tab or selecting it from the pull-down menu.
  389. (You can also select the Connection elements from the Insert
  390. menu.)
  391. </LI>
  392. <LI>
  393. <P ALIGN="left">Position the cursor in your document at the point where you
  394. wish to add the element, then click on the icon in the Insert bar for
  395. the element you want. For all elements except Item Array, you can alternatively
  396. drag the icon from the Insert bar into your document. <i>Do not drag Item
  397. Array into your document.</i> (See Explanation of Individual Tools below for
  398. discussion of the different Connection elements.)
  399. </LI>
  400. <LI>
  401. <P ALIGN="left">Enter the requested information into the dialog box.
  402. </LI>
  403. <LI>
  404. <P ALIGN="left">Click OK and the element will appear in your document as
  405. a Dreamweaver JavaScript icon: <img src="Script.gif" width="18" height="18" align="absmiddle">
  406. (Be sure that Dreamweaver is configured to display these script icons. If they
  407. don't appear in your document, go to the Edit menu, select Preferences, click
  408. &quot;Invisible Elements&quot; in the Category list, and check the checkbox for Scripts.)
  409. </LI>
  410. </OL>
  411. <P ALIGN="left"><B>To change the values of an element after it has been inserted
  412. into a document:</B></P>
  413. <OL>
  414. <LI>
  415. <P ALIGN="left">Select the element by clicking on the <img src="Script.gif" width="18" height="18" align="absmiddle">
  416. icon in your document.
  417. </LI>
  418. <LI>
  419. <P ALIGN="left">Click the Edit button in the property inspector.
  420. </LI>
  421. <LI>
  422. <P ALIGN="left">Edit the variable values in the JavaScript code that appears
  423. in the Script Editor.
  424. </LI>
  425. </OL>
  426. <P ALIGN="left">If you don't feel comfortable with editing JavaScript code, simply
  427. delete the element and recreate it with the new values.</P>
  428. <P ALIGN="left"><b>How Connection elements are displayed in Dreamweaver and rendered
  429. in browsers:</b></P>
  430. <P ALIGN="left">Every Connection element (such as a Conditional Link or random
  431. text) that you add to your document will be displayed in Dreamweaver as a JavaScript
  432. icon (<img src="Script.gif" width="18" height="18" align="absmiddle">). When
  433. the document is displayed in a browser, the <img src="Script.gif" width="18" height="18" align="absmiddle">
  434. icon will be replaced by the HTML element (text, a graphic, a link, etc.) that
  435. you specified when defining the element.</P>
  436. <P ALIGN="left">Here is an example of how a Conditional Link will appear in Dreamweaver
  437. and in a browser:</P>
  438. <P ALIGN="left">In Dreamweaver:</P>
  439. <P ALIGN="left"><img src="Script.gif" width="18" height="18" align="absmiddle">
  440. to follow the Conditional Link.</P>
  441. <P ALIGN="left">In a browser:</P>
  442. <P ALIGN="left"><u><font color="#3333FF">Click here</font></u> to follow the Conditional Link.</P>
  443. <P ALIGN="left"><b>Replacing conventional links with Conditional Links</b></P>
  444. <P ALIGN="left">The Toolkit will not convert conventional links to Conditional Links or MultiLinks. Instead you must delete the link and create a Conditional Link in its place.</P>
  445. <P ALIGN="left">&nbsp;</P>
  446. <H3 ALIGN="left"><A NAME="BrowserToolkit"></A>Connection Toolkit for Browsers</H3>
  447. <P ALIGN="left"><B>To add a Connection element to your hypertext:</B></P>
  448. <OL>
  449. <LI>
  450. <P ALIGN="left">Select a tool and load it into your browser. (You can do this
  451. by clicking on &quot;Open browser version&quot; in the explanation of the
  452. tool below.)
  453. </LI>
  454. <LI>
  455. <P ALIGN="left">Enter the requested information into the form.</LI>
  456. <LI>
  457. <P ALIGN="left">Click the Create Script button. The JavaScript code for the
  458. element you want will be generated in the text box at the bottom of the
  459. form.</LI>
  460. <LI>
  461. <P ALIGN="left"> Select and copy all the text that is
  462. generated in the text box at the bottom of the form.</LI>
  463. <LI>
  464. <P ALIGN="left">Open your Web document in
  465. HTML view in your editing program (or open it in an ASCII text editor) and paste
  466. the text into the document at the location where you wish the new element to appear.</LI>
  467. </OL>
  468. <P ALIGN="left">(Note that the scripts generated will not work properly unless
  469. the Connection Library is loaded by the HTML page.)</P>
  470. <P ALIGN="left"><B>To change the values of an element after it has been inserted
  471. into a document:</B></P>
  472. <OL>
  473. <LI>
  474. <P ALIGN="left"> Open your Web document in
  475. HTML view in your editing program (or open it in an ASCII text editor) and find
  476. the JavaScript code for the element you wish to change. (Each element will
  477. be preceded by the tag <CODE>&lt;SCRIPT LANGUAGE=&quot;javascript&quot;&gt;</CODE>
  478. and followed by the tag <CODE>&lt;/SCRIPT></CODE>.)</LI>
  479. <LI>
  480. <P ALIGN="left">Edit the variable values that appear in the code.</LI>
  481. </OL>
  482. <P ALIGN="left">If you don't feel comfortable with editing JavaScript code, simply
  483. delete the element and recreate it with the new values.</P>
  484. <P ALIGN="left">&nbsp;</P>
  485. <H3 ALIGN="left"><A NAME="IndividualTools"></A>Explanation of Individual Tools</H3>
  486. Click on an icon to open the browser version of the corresponding tool.
  487. <H4 ALIGN="left"> <a name="Conditional_Links_Tool"></a><IMG SRC="ConditionalLink.gif" WIDTH="18" HEIGHT="18" BORDER="0">
  488. Conditional Links</H4>
  489. <P ALIGN="left"><FONT SIZE="-1">[<A HREF="ConditionalLink.htm" target="_blank">Open
  490. browser version</A>]</FONT>
  491. <P ALIGN="left">In the form area labeled &quot;Condition,&quot; you must specify
  492. the condition that determines what will be displayed in your document. Click
  493. on a radio button to select a condition and then fill in any necessary values.
  494. <P ALIGN="left">In the remaining form fields you must specify:
  495. <OL>
  496. <LI> The link to be displayed if the condition is true.</LI>
  497. <LI>What will be displayed if the condition is false. You can choose to display
  498. the same text but without a link, to display nothing, or to display a second
  499. alternative link.</LI>
  500. </OL>
  501. <H4 ALIGN="left"><a name="MultiLink_Tool"></a><IMG SRC="MultiLink.gif" WIDTH="18" HEIGHT="18">
  502. MultiLink</H4>
  503. <P ALIGN="left"><FONT SIZE="-1">[<A HREF="MultiLink.htm" target="_blank">Open
  504. browser version</A>]</FONT>
  505. <P ALIGN="left">This tool lets you create a link with a destination that is selected
  506. on the fly from a set of specified nodes. You can specify the selection criteria
  507. that will determine which node in the set will serve as the link destination.</P>
  508. <P ALIGN="left">If you have defined an array of node names in the configuration
  509. file (config.js), you can enter the name of the array in the first field of
  510.  
  511. the tool's dialog box. (See <a href="#Item_Arrays">Item Arrays</a> and <a href="#Item_Array_Tool">Item
  512. Array Tool</a>.) Alternatively you can type a list of node filenames into this
  513. field, separating the filenames
  514.  
  515. with spaces or commas.</P>
  516. <P ALIGN="left">Click a radio button to specify whether the set of possible destination
  517. nodes should be treated as 1) a sequence in which the first node matching the
  518. selection criteria is selected or 2) a constellation of unordered nodes in which
  519. the nodes are evaluated in random order until one is found that meets the selection
  520. criteria.</P>
  521. <P ALIGN="left">Specify the selection criteria. If you include a JavaScript expression
  522. in the selection criteria, it must evaluate to either <i>true</i> or <i>false</i>.
  523. You should use &quot;filename&quot; as the parameter for functions that accept
  524. a single node name as a parameter. For example, to limit selected nodes to those
  525. visited less than three times, you would enter the following in the &quot;JavaScript
  526. expression&quot; field:</P>
  527. <P ALIGN="left"><code>nbVisits(filename) < 3</code></P>
  528. <P ALIGN="left">Specify an alternative destination node in case none of the specified
  529. nodes fit the selection criteria. In the Linked Text field, type the text that
  530. will serve as the link. If you have defined a <a href="#Title_Array">Title Array</a>
  531. in the configuration file, you can click the radio button that specifies the
  532. linked text should be the title corresponding to the destination node.</P>
  533. <H4 ALIGN="left"><a name="Conditional_Text_Tool"></a><IMG SRC="ConditionalText.gif" WIDTH="18" HEIGHT="18" BORDER="0">
  534. Conditional Text</H4>
  535. <P><FONT SIZE="-1">[<A HREF="ConditionalText.htm" target="_blank">Open browser
  536. version</A>]</FONT></P>
  537. <P>In the form area labeled &quot;Condition&quot; you must specify the condition
  538. that determines what will be displayed in your document. Click on a radio button
  539. to select a condition and then fill in any necessary values. </P>
  540. <P>In the remaining form fields you must specify the text to be displayed if the
  541. condition is true and the text to be displayed if the condition is false. These
  542. fields will accept multiple lines and HTML tags. In fact, you can copy an entire
  543. page of HTML source code into either of these fields and the tool will format
  544. it so that it will be displayed properly in your document.</P>
  545. <H4 ALIGN="left"><a name="Random_Text_Tool"></a><IMG SRC="RandomText.gif" WIDTH="18" HEIGHT="18">
  546. Random Text</H4>
  547. <P ALIGN="left"><FONT SIZE="-1">[<A HREF="RandomText.htm" target="_blank">Open
  548. browser version</A>]</FONT></P>
  549. <P ALIGN="left">The Random Text element randomly selects and displays a text item
  550. from among a series of text items that you specify.</P>
  551. <P ALIGN="left">To specify each text item, type it into the field labeled &quot;Alternative
  552. text items&quot; and then click the &quot;Add&quot; button. Each item you add
  553. will appear in the &quot;List of alternative items.&quot; Separate items will
  554. appear in the list enclosed in quotation marks and separated by comments. To
  555. remove an item from the list, you must edit the list.</P>
  556. <H4 ALIGN="left"><a name="Item_Array_Tool" id="Item_Array_Tool"></a><img src="ItemArray.gif" width="18" height="18"> Item
  557. Array</H4>
  558. <P ALIGN="left"><FONT SIZE="-1">[There
  559. is no browser version of this tool]</FONT></P>
  560. <P ALIGN="left">The Item Array Tool lets you automatically create sets of
  561. filenames or other items that can be used by other Connection Muse functions.
  562. (See <a href="#Item_Arrays">Item
  563. Arrays</a>.) There are two methods for adding items to an array:</P>
  564. <P ALIGN="left">To add a group of filenames to an array:</P>
  565. <ol>
  566. <li>In the Dreamweaver Site Panel, select the files you want to
  567. add to your array.</li>
  568. <li>Open the Item Array Tool by clicking on its toolbar icon.</li>
  569. <li>Enter a name for your array.</li>
  570. <li>Click the Add Selected Nodes button and the selected filenames will appear
  571. in the List of Array Items. You can edit the contents of this list if you
  572. wish.</li>
  573. <li>Click the Save Item Array button and your array will be added to your
  574. config.js file.</li>
  575. <li>Click the Close button to close the dialogue box.</li>
  576. </ol>
  577. <P ALIGN="left">To add filenames or other items one at a time:</P>
  578. <ol>
  579. <li>Open the Item Array Tool by clicking on its toolbar icon.</li>
  580. <li>Enter a name for your array.</li>
  581. <li>Add items to the List of Array Items either by typing in the text of each
  582. item and clicking the Add Text Button or clicking the Add Node button and
  583. selecting a filename from the popup list. You can add as many items as you
  584. wish using either method.</li>
  585. <li>Click the Save Item Array button and your array will be added to your config.js
  586. file.</li>
  587. <li>Click the Close button to close the dialogue box.</li>
  588. </ol>
  589. <P ALIGN="left">To change an item array after it has been
  590. saved,
  591. you must open config.js with the Dreamweaver text editor, find the name of your
  592. array in the file, and edit the list that follows the name.</P>
  593. <P ALIGN="left">&nbsp;</P>
  594. <H2 ALIGN="CENTER"><A NAME="ConfigurationOptions"></A>Configuration Options</H2>
  595. <P ALIGN="left">&nbsp;</P>
  596. <P ALIGN="left">There are a number of factors you can control globally throughout
  597. the hypertext, such as the appearance of links or other elements. You control
  598. these factors by entering configuration parameters in the configuration file
  599. (<I>config.js</I>). Open <I>config.js</I> in an ASCII text editor and follow
  600. the instructions below for changing configuration options.</P>
  601. <P ALIGN="left">&nbsp;</P>
  602. <H3 ALIGN="left"><A NAME="General_Properties"></A>1. General Properties</H3>
  603. <H4 ALIGN="left">History Name</H4>
  604. <P><CODE>histCookieName = <I>string</I></CODE></P>
  605. <P>The history record for your hypertext is stored in the cookie, which must be
  606. given a unique name. If your history name duplicates that of another hypertext
  607. stored on the same Web site, the history will become corrupted. To create a
  608. history name, find the following line in <I>config.js</I>.</P>
  609. <P><CODE>histCookieName = &quot;HypertextName&quot;</CODE> </P>
  610. <P>Change <CODE>HypertextName</CODE> to a name that represents your hypertext.
  611. The name cannot include spaces, commas, or semicolons. Be sure to leave the
  612. quotation marks intact.
  613. <H4>History Recording</H4>
  614. <P><CODE>noHistUpdate = true | false</CODE>
  615. <P>By default, every time the Connection Library is loaded, it adds the current
  616. node to the history record. If you wish to disable history recording, add the
  617. following line to <I>config.js:</I>
  618. <P><CODE>noHistUpdate = true</CODE>
  619. <P>Disabling history recording is recommended if you want to use only features
  620. that don't rely on the history, such as randomly displayed text or links.
  621. <H4>Hypertext Length</H4>
  622. <P><CODE>totalNodes = <I>integer</I></CODE>
  623. <P>The system can determine what proportion of your total hypertext has been read
  624. and use this information to perform conditional functions. To use this feature,
  625. though, you must tell the system how many nodes your hypertext contains. To
  626. do this, find the following line in <I>config.js:</I>
  627. <P><CODE>totalNodes = 0</CODE>
  628. <P>Change the &quot;0&quot; to the total number of nodes. (Do not put quotation
  629. marks around the number.) If the number of nodes changes, you will have to manually
  630. change this number, so it is best to wait until the work is finished before
  631. you define this attribute. Providing this information is only necessary if you
  632. wish to use functions that rely on how much of the total work has been read.
  633. <P>
  634. <H3><A NAME="Link_Appearance"></A>2. Link Appearance</H3>
  635. <P>You can control the way links are displayed throughout the document by adding
  636. attribute definitions to <I>config.js</I>. Add the line of text indicated to
  637. the end of the file.</P>
  638. <H4>Color</H4>
  639. <P><CODE>linkColorDefault = <I>color</I></CODE></P>
  640. <P>Specifies an HTML color value that determines the color of the linked text
  641. for all the links throughout the hypertext created with the link() function.
  642. Its value may be the name of a color enclosed in quotation marks ("red", "green",
  643. etc.), a hexadecimal color value, or a JavaScript color property (document.fgColor,
  644. document.linkColor, etc.). The default value is <I>null,</I> which specifies
  645. that the browser's default color will be used.</P>
  646. <P>For example, the following line sets the default link color to green:</P>
  647. <P><CODE>linkColorDefault = &quot;green&quot;</CODE></P>
  648. <H4>Embellishments</H4>
  649. <P><CODE>linkPrefixDefault = <I>embellishment</I><BR>
  650. linkSuffixDefault = <I>embellishment</I></CODE></P>
  651. <P><CODE>linkPrefixDefault</CODE> specifies text or HTML code to be placed immediately
  652. before every link and <CODE>linkSuffixDefault</CODE> specifies text or HTML
  653. code to be placed immediately after every link. This can be used to put bullets
  654. in front of or brackets around all the links in a hypertext. The default value
  655. is no embellishments.</P>
  656. <P> For example, the following lines enclose links in brackets:</P>
  657. <P> <CODE>linkPrefixDefault = &quot;[ &quot;<BR>
  658. linkSuffixDefault = &quot; ]&quot;</CODE></P>
  659. <P>This line adds a graphic before links to serve as a bullet:</P>
  660. <P> <CODE>linkPrefixDefault = '&lt;IMG SRC="bullet.jpg" WIDTH="37" HEIGHT="29"&gt;'</CODE></P>
  661. <H4>Inactive Link Appearance</H4>
  662. <P><CODE>deadLinkColor = <I>color<BR>
  663. </I>deadLinkStyle = "text&quot; | &quot;link" </CODE></P>
  664. <P>When a Conditional Link becomes inactive you have the option of hiding the
  665. linked text or displaying it as unlinked text (a &quot;dead link&quot;). These
  666. attributes determine how these dead links are displayed throughout the hypertext.
  667. <CODE>deadLinkColor</CODE> sets the color of the dead link. Its value may be
  668. the name of a color enclosed in quotation marks ("red", "green", etc.), a hexadecimal
  669. color value, or a JavaScript color property (document.fgColor, document.linkColor,
  670. etc.). The default color is <code>null</code>, which causes the document text
  671. color to be used. If <CODE>deadLinkStyle</CODE> is set to &quot;text,&quot;
  672. the dead link will be displayed as plain text. If this attribute is set to &quot;link,&quot;
  673. the dead link will be displayed as underlined text.</P>
  674. <P>For example, the following lines set dead links to appear as plain text in
  675. the same color as live links:</P>
  676. <P><CODE>deadLinkColor = document.linkColor<BR>
  677. </CODE><CODE>deadLinkStyle = "text"</CODE></P>
  678. <P>This line sets dead links to green:</P>
  679. <P><CODE>deadLinkColor = &quot;green&quot;</CODE></P>
  680. <P>&nbsp;</P>
  681. <H3><A NAME="Annotated_Text"></A>3. Annotated Text</H3>
  682. <P><CODE>annotatedTextColorDefault = <I>color<br>
  683. </I>annotatedTextCSS = <i>value</i><br>
  684. annotatedTextPrefixDefault = <i>embellishment</i><br>
  685. annotatedTextSuffixDefault = <i>embellishment</i></CODE></P>
  686. <P><code>annotatedTextColorDefault</code> sets the color of annotated text created
  687. with the display() function. Its value may be the name of a color enclosed in
  688. quotation marks ("red", "green", etc.), a hexadecimal color value, or a JavaScript
  689. color property (document.fgColor, document.linkColor, etc.). The default value
  690. is <CODE>null</CODE>, which causes the default link color to be used. (When
  691. the mouse pointer is moved over annotated text, a message is displayed in either
  692. a pop-up text box or the status bar.)</P>
  693. <P> The following line sets annotated text to gray:</P>
  694. <P><CODE>annotatedTextColorDefault = &quot;gray&quot;</CODE></P>
  695. <P><code>annotatedTextCSS</code> determines whether annotated text is underlined. The default
  696. setting is</P>
  697. <P><code>annotatedTextCSS = "text-decoration: none"</code></P>
  698. <P>which turns underlining off. The following setting will turn underlining on
  699. and display annotated text as if it were a link:</P>
  700. <P><code>annotatedTextCSS = ""</code> </P>
  701. <p><code>annotatedTextPrefixDefault</code> specifies text or HTML code to be placed
  702. immediately before every piece of annotated text and <code>annotatedTextSuffixDefault</code>
  703. specifies text or HTML code to be placed immediately after every piece of annotated
  704. text. This can be used to mark all the annotated text in a hypertext. The default
  705. value is no prefixes or suffixes.</p>
  706. <p> For example, the following line puts an asterisk after all the text created
  707. with the display() function:</p>
  708. <p><code>annotatedTextSuffixDefault = &quot;*&quot;</code></p>
  709. <p>&nbsp;</p>
  710. <H3><A NAME="Annotations"></A>4. Annotations</H3>
  711. <P><CODE>popupTextDefault = <I>string<br>
  712. </I></CODE><CODE>popupTextColorDefault = <i>color<br>
  713. </i>popupBgColorDefault = <i>color</i><BR>
  714. popupAttDefault = <I>values</I><I><BR>
  715. </I>statusTextDefault = <I>string</I><BR>
  716. deadLinkPopup = true | false<BR>
  717. deadLinkStatus = true | false<BR>
  718. titlePopup = true | false<BR>
  719. titleStatus = true | false</CODE></P>
  720. <P>These attributes control annotations for links or annotated text that appear
  721. as pop-up text messages or status bar messages. <CODE>popupTextDefault</CODE>
  722. specifies a default text string that will be displayed in a pop-up box whenever
  723. the mouse pointer is moved over a link created with link() or text created with
  724. display(). The default is &quot;null&quot; for no pop-up display.</P>
  725. <P><code>popupTextColorDefault</code> specifies the color of pop-up text. This
  726. may be either the name of a color enclosed in quotation marks (&quot;red&quot;,
  727. &quot;green&quot;, etc.) or a hexadecimal color value. The default value is
  728. <code>null</code>, which causes the text color of the document to be used. <code>popupBgColorDefault</code>
  729. determines the background color of the pop-up text. The default setting is <code>&quot;#FFFFCC&quot;,</code>
  730. which sets the background color to pale yellow.</P>
  731. <P><code>popupAttDefault</code> specifies attributes that determine the appearance
  732. of the pop-up text. This text is formatted by means of an HTML table, so <code>popupAtt</code>
  733. will accept any string of attributes allowed by the HTML &lt;TABLE&gt; tag.
  734. The attributes are entered in the following format:</P>
  735. <p> <code>popupAttDefault = '<i>attribute1</i>=&quot;<i>value1</i>&quot; [<i>attribute2</i>=&quot;<i>value2</i>&quot;]'</code></p>
  736. <p>This example sets a specific width for the pop-up box:</p>
  737. <p><code>popupAttDefault = 'width=&quot;100&quot;'</code> </p>
  738. <P>The pop-up text feature relies on DHTML and therefore will only work in version
  739. 4 or later browsers. <FONT COLOR="#FF0000">[Note: A bug in the current version
  740. prevents pop-up text from working properly in Netscape Navigator if the relevant
  741. link appears in text that is centered or in a table.]</FONT></P>
  742. <P><CODE>statusTextDefault</CODE> functions the same way as <CODE>popupTextDefault</CODE>,
  743. except the specified annotation appears in the browser's status bar. The default
  744. is &quot;null&quot; for no status bar message.</P>
  745. <P>Both <CODE>popupTextDefault</CODE> and <CODE>statusTextDefault</CODE> can be
  746. overridden by specifications made in individual coals to either link() or display().</P>
  747. <P>If <CODE>deadLinkPopup</CODE> or <CODE>deadLinkStatus </CODE>is set to &quot;true,&quot;
  748. the specified pop-up or status bar annotation will be displayed by dead links.
  749. (See Link Appearance for discussion of dead links.) The default for both these
  750. attributes is &quot;false.&quot;</P>
  751. <P>If <CODE>titlePopup</CODE> or <CODE>titleStatus </CODE>is set to &quot;true,&quot;
  752. node titles specified in a Title Array will be used as pop-up or status bar
  753. annotations for links to the corresponding nodes. The default for both these
  754. attributes is &quot;false.&quot;</P>
  755. <P>For example, the following lines specify default text to appear in the status
  756. bar and specify that node titles be displayed as pop-up annotations for live
  757. and dead links.</P>
  758. <P><CODE>statusTextDefault = &quot;Be brave. Click here.&quot;<BR>
  759. deadLinkPopup = true<BR>
  760. titlePopup = true</CODE></P>
  761. <P><a name="Title_Array"></a>To create a Title Array, add the following line to
  762. <I>config.js:</I></P>
  763. <P><CODE>titleArray = new Array()</CODE></P>
  764. <P>Then assign titles to file names using the following syntax:</P>
  765. <P><CODE>titleArray[<I>filename</I>] = <I>title</I></CODE></P>
  766. <P>For example, the following Title Array will cause &quot;Node 1&quot; to be
  767. displayed as pop-up text for every link to<I> node1.htm,</I> &quot;Node 2&quot;
  768. for every link to <I>node2.htm, </I>and so on:</P>
  769. <P><CODE>titleArray = new Array()</CODE></P>
  770. <P><CODE> titleArray[&quot;node1.htm&quot;] = &quot;Node 1&quot;<BR>
  771. titleArray[&quot;node2.htm&quot;] = &quot;Node 2&quot;<BR>
  772. titleArray[&quot;node3.htm&quot;] = &quot;Node 3&quot;<BR>
  773. titleArray[&quot;node4.htm&quot;] = &quot;Node 4&quot;</CODE></P>
  774. <P>&nbsp;</P>
  775. <h3><a name="Item_Arrays"></a>5. Item Arrays</h3>
  776. <P> Many of the Connection functions support multiple items as parameters, allowing
  777. you to perform such operations as randomly selecting one of several node filenames
  778.  
  779. (see <a href="reference.htm" target="_top">Function Reference</a>). If you
  780. wish to use the same set of items repeatedly in different functions, you can
  781. define
  782. the set as an item array in <i>config.js</i>. You can then use the array name
  783. as a function parameter instead of entering each individual item name as a
  784. separate
  785. parameter. You can use the <a href="#Item_Array_Tool">Item Array Tool</a> to
  786. create item arrays.</P>
  787. <P>Item arrays take the following form:</P>
  788. <P><i><code>arrayName</code></i><code> = [<i>item1</i>, <i>item2</i>, <i>item3,
  789. ...</i>]</code></P>
  790. <P>For example, this line added to <i>config.js</i> defines an array of four node
  791. filenames:</P>
  792. <P><code>someNodes = ["1.htm", "2.htm", "3.htm", "4.htm"]</code></P>
  793. <P>The array name <code>someNodes</code> can then be used in functions instead
  794. of the names of the four nodes. For example, this code would create a link to
  795. one of the four nodes selected at random:</P>
  796. <P><code>&lt;SCRIPT LANGUAGE="javascript"&gt;<br>
  797. link(select("random", someNodes), "random link")<br>
  798. &lt;/SCRIPT&gt;</code></P>
  799. <P>Arrays of other types of items may be created for use with multi-parameter
  800. selection or evaluation functions.</P>
  801. <P>&nbsp;</P>
  802. <h3><a name="Optimizing_Performance"></a>6. Optimizing Performance</h3>
  803. <P><code>fileExtension = &quot;htm|html&quot;</code></P>
  804. <P>By default, the system expects node names to end with the extension &quot;<i>.html</i>&quot;
  805. and treats &quot;<i>.htm</i>&quot; extensions as exceptions. If most or all
  806. of your HTML filenames end with the &quot;<i>.htm</i>&quot; extension, you can
  807. gain a slight increase in both performance and the capacity of the history record
  808. by adding the following line to <i>config.js</i>:</P>
  809. <P><code>fileExtension = &quot;htm&quot;</code></P>
  810. <P>The default setting is:</P>
  811. <P><code>fileExtension = &quot;html&quot;</code></P>
  812. <P>This <code>fileExtension</code> variable has no effect if you are using <a href="#Large_Hypertexts">Short
  813. IDs</a>.</P>
  814. <P>&nbsp;</P>
  815. <h3><a name="Automatic_Execution"></a>7. Automatic Function Execution</h3>
  816. <P><code>executeAfterLoading()</code></P>
  817. <P>If you wish to execute a particular function every time any node is loaded,
  818. you can declare the <code>executeAfterLoading()</code> function in the <i>config.js</i>
  819. file. This function will be executed every time <i>connect.js</i> is loaded.
  820. Because it is executed after the system files are loaded, it can make use of
  821. any Connection System functions. The function is declared by adding the following
  822. lines to <i>config.js</i>:</P>
  823. <P><code>function executeAfterLoading() {<br>
  824. &nbsp;&nbsp;&nbsp;<i>JavaScript expressions</i> <br>
  825. } </code></P>
  826. <P><code><i>JavaScript expressions</i></code> are the lines of JavaScript code
  827. you wish to execute. The following example updates a Table of Contents page
  828. (<i>contents.htm</i>) in a frame called <i>leftFrame</i> every time a node is
  829. loaded.</P>
  830. <P><code>function executeAfterLoading() {<br>
  831. &nbsp;&nbsp;&nbsp;parent.leftFrame.location = "contents.htm" <br>
  832. } </code></P>
  833. <P>You cannot define parameters for this function.</P>
  834. <P>If you wish to prevent <code>executeAfterLoading()</code> from being executed
  835. on a particular page, add the following lines to the header of that page:</P>
  836. <P><code>&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br>
  837. noExecuteAfterLoading = true<br>
  838. &lt;/SCRIPT&gt;</code></P>
  839. <P>&nbsp;</P>
  840. <h2 align="center"><a name="Using_Features"></a>Using Connection System Features</h2>
  841. <p>&nbsp;</p>
  842. <h3><a name="Conditional_Text"></a>Conditional and Random Text</h3>
  843. <p>Connection Muse lets you add conditional elements to your text using
  844. the <a href="#Conditional_Text_Tool">Conditional Text Tool</a>. These are fragments
  845. of text that are either displayed or not displayed on the page, depending upon
  846. conditions that you specify (such as whether or not a particular node has been
  847. read). You can also create several alternative text fragments and specify conditions
  848. that will determine which of the fragments will be displayed when the node is
  849. read.</p>
  850. <p>You can add random elements to your text by creating several alternative text
  851. fragments and specifying that one of these be selected randomly and displayed
  852. in your page when it is read. This can be done with the <a href="#Random_Text_Tool">Random
  853. Text Tool</a>.</p>
  854. <p>Conditional or random text elements can be any length and can include any HTML
  855. tags, so they can contain graphics, tables, audio elements, or JavaScript. You
  856. can specify as many alternative text fragments as you wish within a random text
  857. element. </p>
  858. <h4><a name="Using_Conditional_Text"></a>When to Use Conditional and Random Text</h4>
  859. <p>Conditional text can alter a text so that it will better fit into multiple
  860. contexts, creating syntactic or narrative transitions as needed. This lets you
  861. provide the reader with more options for rearranging the hypertext in different
  862. ways during a reading.</p>
  863. <p>Conditional text can also make node recurrence more interesting and meaningful.
  864. When reading a hypertext, the reader is likely to periodically encounter nodes
  865. she's already read. Rereading these nodes can be more fruitful for the reader
  866. when something new is revealed in them. Changing a few words in the text when
  867. it is read a second or third time can bring out meanings that were only implied
  868. the first time around. Context-sensitive variant versions of a node can ensure
  869. that reading the node in different contexts (that is preceded by different nodes)
  870. reveals new meaning in it. Different implications of a text passage may be brought
  871. out when it is preceded by different nodes, and subtle conditional alterations
  872. to the text can make these implications more explicit. Random variations can
  873. create a more unpredictable type of variety upon rereading.</p>
  874. <p>It can sometimes be useful to suppress or add certain information conditionally
  875. within a node. If a particular node containing background information about
  876. an event or character has already been read, that information can be omitted
  877. from other nodes by means of conditional text. For example, you could specify
  878. that whenever the name &quot;Mary&quot; first appears in a node, it is preceded
  879. by the phrase &quot;Bob's wife,&quot; unless another node referring to Mary
  880. has already been read, in which case Mary will already have been identified
  881. as Bob's wife.</p>
  882. <p>Conditional text can also be used to create alternative plot lines. For example,
  883. after a reader encounters a node in which Mary is killed, Mary could be eliminated
  884. from subsequent nodes by suppressing some of the text in those nodes. If the
  885. reader never encounters the node containing Mary's death, Mary can continue
  886. to figure in the story until the end.</p>
  887. <p>Adding several random elements within the same node can create interesting
  888. and unpredictable textual juxtapositions, such as those found in Surrealist
  889. or Dadaist writings.</p>
  890. <p>&nbsp;</p>
  891. <h3><a name="Conditional_Links"></a>Conditional Links and MultiLinks</h3>
  892. <p>The Connection System lets you create a wide variety of Conditional Links using
  893. the <a href="#Conditional_Links_Tool">Conditional Links Tool</a>. You can specify
  894. that a Conditional Link is to be activated (that is, made clickable) only if
  895. certain conditions are met, or you can specify that the destination node for
  896. a Conditional Link should vary depending on specified conditions.</p>
  897. <p>To create a simple Conditional Link, you define a link and then specify a condition,
  898. such as whether or not a particular node or a specified number of nodes has
  899. been read. You then specify what will happen if the condition is met or not
  900. met. Generally you will want the link to be displayed and activated if the condition
  901. is met. If the condition is not met, you can substitute an alternative destination,
  902. you can deactivate the link (display it as text that is not clickable), or you
  903. can hide the link altogether.</p>
  904. <p>To create a MultiLink, you specify a number of alternative destination nodes
  905. for the link using the <a href="#MultiLink_Tool">MultiLink Tool</a>. You can
  906. then specify that the destination should be chosen randomly or according to
  907. whether or not certain conditions are met. You can also combine random and conditional
  908. selection, so that a destination is chosen randomly from all nodes that meet
  909. a specified condition (such as all nodes not yet visited by the reader).</p>
  910. <h4><a name="Using_Conditional_Links"></a>When to Use Conditional Links</h4>
  911. <p>Simple Conditional Links can serve many useful purposes. You can deactivate
  912. or hide links that lead to nodes that have already been read. This can be useful
  913. if you want to steer readers to new material but for aesthetic reasons don't
  914. want to use an alternative vlink color for followed links. If you are using
  915. clickable graphics for links, you can specify that an alternative graphic image
  916. be displayed for links that lead to previously read nodes.</p>
  917. <p>Conditional Links can be useful for controlling the reader's access to certain
  918. material. To maintain suspense in a story, you might want to withhold certain
  919. passages (such as the one revealing whodunit in a mystery tale) until most of
  920. the hypertext has been read. You can do this by using Conditional Links as the
  921. reader's only means to get to the restricted passages. The links could then
  922. be hidden or deactivated until a specified number of nodes has been read.</p>
  923. <p>For the sake of coherence and logical development in a narrative, you might
  924. want to ensure that certain widely scattered passages within the hypertext are
  925. encountered in a particular order. You can do this by creating Conditional Links
  926. to the passages, specifying that the links remain hidden or inactive until the
  927. prerequisite nodes have been read. For example, Conditional Links could restrict
  928. access to a node that describes a certain action--this node would be inaccessible
  929. until other nodes had been read that establish the motivation for this action.
  930. </p>
  931. <p>Conditional Links can help with character development. Suppose you want to
  932. ensure the progressive development of a character named Mary. First, you could
  933. categorize all the nodes dealing with Mary as belonging to one of three stages
  934. in her development. Conditional links could then ensure that none of the Stage
  935. 2 nodes are visited until all of the Stage 1 nodes have been read. Similarly,
  936. you could ensure that no Stage 3 nodes are available until all Stage 2 nodes
  937. have been read.</p>
  938. <p>Conditional Links can also implement alternative plot elements in a manner
  939. similar to that described in the section on conditional text. If the reader
  940. encounters a node in which Mary dies, this could deactivate all the links to
  941. nodes in which Mary is depicted as being still alive and activate links to nodes
  942. that deal with the consequences of her death.</p>
  943. <h4><a name="Random_Links"></a>Random Links and Other MultiLinks</h4>
  944. <p>MultiLinks can randomly take the reader to a new destination. This can be useful
  945. if you want to achieve a highly fragmented style along the lines of, say, one
  946. of William Burroughs' &quot;cut-up&quot; novels. MultiLinks can also be used
  947. in a more structured way, as described in the following section on text components.</p>
  948. <p>You can specify the alternative destinations in the MultiLink Tool by entering
  949. the names of all the destination nodes in the Nodes field. If you wish to create
  950. a number of different MultiLinks that use the same set of destination nodes,
  951. it is better to create an <a href="#Item_Arrays">Item Array</a> that contains
  952. the names of all the nodes. Then whenever you create a MultiLink you need only
  953. enter the name of the Item Array in the MultiLink Tool. Item Arrays should also
  954. be used to implement Text Componenets as described in the next section.</p>
  955. <p>&nbsp;</p>
  956. <h3><a name="Text_Components"></a>Text Components and Organic Hypertext</h3>
  957. <p>Connection Muse provides features for handling large-scale structural
  958. elements of a story or poem. You can define the large-scale narrative or thematic
  959. components of your text and then specify parameters for how these text components
  960. should unfold and interact with each other during a reading. In other words,
  961. you can assign behaviors to the important elements of your text.</p>
  962. <p>This component and behavior approach lets you define structure as process and
  963. create what we call <i>organic hypertext</i>. There are two facets to the concept
  964. of organic hypertext:</p>
  965. <ul>
  966. <li>The individual parts of the hypertext contain their own predefined behaviors
  967. for growth so they can unfold during the reading with relative independence
  968. when necessary.</li>
  969. <li>At the same time, these individual parts are able to adapt to the unique
  970. circumstances of a particular reading so that the parts can better serve the
  971. whole</li>
  972. </ul>
  973. <p>Here we provide a brief introduction to components and organic hypertext. For
  974. a more in-depth discussion, see <a href="http://www.wordcircuits.com/connect/ht2000.htm" target="_blank">Toward
  975. an Organic Hypertext</a>.</p>
  976. <h4><a name="What_Are_Components"></a>What Are Text Components?</h4>
  977. <p>Text components are any structural or conceptual elements that are likely to
  978. cohere as distinct entities in the reader's mind during the reading process.
  979. For example, the reader may encounter passages about a particular character
  980. scattered throughout the text. The reader will mentally piece the content of
  981. these passages together to form a conceptualization of that character's personality
  982. and history. Here are some categories of text components, along with some specific
  983. examples of these components that we will use in a demo for a hypothetical story:</p>
  984. <p>Settings of time or place</p>
  985. <ul>
  986. <li>Chicago</li>
  987. <li>New York</li>
  988. </ul>
  989. <p>Characterizations</p>
  990. <ul>
  991. <li>Susan</li>
  992. <li>Jacob</li>
  993. <li>Shirley</li>
  994. </ul>
  995. <p>Plot lines</p>
  996. <ul>
  997. <li>Affair between Susan and Jacob</li>
  998. <li>Susan's childhood</li>
  999. <li>Jacob's sexual abuse of his niece, Shirley</li>
  1000. </ul>
  1001. <p>Themes, unifying metaphors, symbolic elements, and so on</p>
  1002. <ul>
  1003. <li>guilt and atonement</li>
  1004. <li>sexual obsession</li>
  1005. </ul>
  1006. <p>Here is a <a href="diagram.htm" target="_blank">diagram</a> of the text component
  1007. structure of this hypothetical story. Note how some text components are contained
  1008. within others (for example, Susan's childhood is set in New York), while others
  1009. overlap (the theme of sexual obsession overlaps with both Jacob's affair and
  1010. his abuse of his niece).</p>
  1011. <h4><a name="Using_Components"></a>Using Text Components</h4>
  1012. <p>You define a text component by specifying a group of nodes that contain the
  1013. relevant textual material. Components may not always be clear-cut, so the contents
  1014. of different components can overlap with each other--that is, the same nodes
  1015. can be contained within more than one component. The content of components can
  1016. even be changed dynamically by adding or removing nodes during the reading.
  1017. Once components are defined, you determine their behavior. You can then create
  1018. links directly to a text component instead of to an individual node. The component's
  1019. predefined behavior will determine which specific node within the component
  1020. will serve as the link's destination.</p>
  1021. <p>You define the contents of a component by creating an <a href="#Item_Arrays">Item
  1022. Array</a> in your config.js file. The Item Array lists all of the nodes that
  1023. constitute the component, and you can access these nodes as a group by using
  1024. the name of the array.</p>
  1025. <p>The nodes in a component can behave as an ordered or an unordered set. If the
  1026. order of the nodes is governed by a logic of chronology or exposition, you can
  1027. treat the nodes as an ordered sequence. An example of this is a group of nodes
  1028. that relate a particular plot line, such as the affair between Susan and Jacob
  1029. in our hypothetical story. Ordered components are represented as ovals in the
  1030. <a href="diagram.htm" target="_blank">diagram</a>. You can specify that every
  1031. time the reader returns to an ordered component, she is taken to the first unvisited
  1032. node in the sequence. This type of component is called a <i>retentive path,</i>
  1033. and it lets a reader easily return to a narrative thread and pick up where she
  1034. left off.</p>
  1035. <p>If the nodes are clearly connected in content but don't inherently demand a
  1036. particular ordering, they can be treated as unordered. An example of this is
  1037. a group of nodes that contribute to the reader's understanding of a particular
  1038. character, locale, object, or event or simply share a philosophical outlook
  1039. or style of writing. All the nodes that bear upon Susan's personality could
  1040. constitute an unordered component. Unordered components are represented as rectangles
  1041. in the <a href="diagram.htm" target="_blank">diagram</a>. (Note that in the
  1042. diagram the unordered components representing locale contain ordered plot components
  1043. within them. Part of a component can behave as an ordered sequence while the
  1044. rest behaves as unordered.)</p>
  1045. <p>Other more complex behaviors are also possible. For example, particular nodes
  1046. can be included in a component or excluded from it depending on whether all
  1047. or part of some other component has been read. Once a component and its behavior
  1048. are defined, links can be created directly to a component instead of to an individual
  1049. node within the component. The component's behavior will determine which node
  1050. the link leads to.</p>
  1051. <p>In the current version of the system, the behavior of a component must be specified
  1052. every time a link is created. You create links to a component with the <a href="#MultiLink_Tool">MultiLink
  1053. Tool</a>, and you specify the behavior by filling out the fields in the MultiLink
  1054. Tool. In our prototype for a future version, behaviors need be specified only
  1055. once, since they will be stored centrally with the components themselves.</p>
  1056. <h4><a name="Component_Demo"></a>The Component Demo</h4>
  1057. <p>We've created a <a href="demos/components/demo.htm" target="_blank">hypertext
  1058. prototype</a> for part of the hypothetical story referred to above. Note that
  1059. this is just a rough outline for demonstration purposes and not meant to be
  1060. a real piece of fiction. After clicking on the link above to launch the demo,
  1061. you will see the main text window on the right and a component map for navigational
  1062. purposes in a smaller window on the left. The demo text consists of 3 text components,
  1063. which are represented by icons in the component map:</p>
  1064. <ol>
  1065. <li><b>The Affair</b> (between Susan and Jacob) is a sequence of 7 nodes that
  1066. unfold a short chronological plot thread. This is a retentive path.</li>
  1067. <li>The <b>Susan</b> component consists of all the nodes about Susan that don't
  1068. require any chronological ordering. These five nodes merely describe aspects
  1069. of her character and they could be slipped in anywhere within the plot line
  1070. and presented in any order. This is an unordered component.</li>
  1071. <li>The <b>Jacob</b> component is an unordered component of five nodes describing
  1072. Jacob.</li>
  1073. </ol>
  1074. <p>All the links in both windows of this demo are made directly to one of these
  1075. three components, and the component's behavior determines the exact destination
  1076. node. All of the links to <b>The Affair</b> lead to the first unvisited node
  1077. in the sequence. All of the links to <b>Susan</b> or <b>Jacob</b> lead to a
  1078. randomly selected unvisited node in the respective component. Once all of a
  1079. character's nodes have been read, previously visited nodes are presented instead
  1080. of new nodes.</p>
  1081. <p>If you wish, you can read all the text by simply clicking repeatedly on the
  1082. 3 icons in the map. These icons shrink in proportion to the amount of text within
  1083. the component that has been read, and moving the mouse pointer over an icon
  1084. shows the percentage of the component read. You can also navigate by following
  1085. links in the text itself.</p>
  1086. <p>Clicking on the <b>Susan</b> or <b>Jacob </b>icon or a link on a character's
  1087. name in the text always yields new material about that character, as long as
  1088. new material is available. This guarantees that a link to a character from anywhere
  1089. in the hypertext will always let you continue to flesh out your knowledge of
  1090. that character and allow you to keep moving forward with the reading.</p>
  1091. <p>After reading several Susan or Jacob nodes, you can return to the story line
  1092. at any time by clicking on either <b>The Affair</b> in the map or &quot;return
  1093. to the steamy stuff&quot; in the text. This lets you resume the story line exactly
  1094. where you left off, no matter where you are in the hypertext.</p>
  1095. <p>The way these links function is an example of allowing the different parts
  1096. of the text to grow independently, one of the goals of organic hypertext. This
  1097. approach makes for a very smooth reading experience. In this short hypertext
  1098. the chances of prematurely looping (that is, encountering previously read material)
  1099. and the need for backtracking to find new material are virtually eliminated,
  1100. even if the reader doesn't use the map. This wouldn't be the case if all the
  1101. links in this work were static and fixed. It is easier for the reader to achieve
  1102. closure in the reading, since it's always clear what remains to be read. The
  1103. component map also makes it much clearer to the reader how she is interacting
  1104. within the large-scale structure of the text.</p>
  1105. <h4> <a name="Complex_Approaches"></a>More Complex Approaches</h4>
  1106. <p> In a larger, more complex hypertext a component map, retentive paths, and
  1107. other Connection System elements can be even more valuable for the reader. Their
  1108. use may also become more complex than in our component demo. Suppose you were
  1109. to implement all of the components you see in our <a href="diagram.htm" target="_blank">component
  1110. diagram</a> and then add some new ones. You might then want to control the reader's
  1111. access to material by manipulating links in the text and on the map. You might
  1112. want the map to dynamically hide or display some components, rather than presenting
  1113. them all at once. For example, a component might appear on the map only after
  1114. the reader has already encountered it through links in the text. You might not
  1115. want to give the reader access to Jacob's sexual abuse until she's read some
  1116. background material about Jacob or Shirley.</p>
  1117. <p> You might not want the reader to be able to read through the entire Affair
  1118. sequence without interruption; you might want to create suspense by withholding
  1119. the last node or two until a lot of other material in the hypertext has been
  1120. read. You may want the reader to be able to read a plot thread by jumping around
  1121. in it occasionally and encountering some events out of order. You might feel
  1122. the need to use mutually exclusive alternative text elements, such as different
  1123. outcomes for a single plot line. You may decide to combine certain components
  1124. or exclude nodes from a component under certain circumstances. All of these
  1125. things are possible with the system. They are examples of the individual parts
  1126. of the text adapting themselves to serve the needs of the whole, the second
  1127. goal of organic hypertext</p>
  1128. <p>&nbsp;</p>
  1129. <h3><a name="Recognized_Problems" id="Recognized_Problems"></a>Recognized Problems</h3>
  1130. <p><b>Pop-up Text</b></p>
  1131. <p>In Netscape Navigator, pop-up text doesn't work properly when connected to
  1132. text that is centered or placed in tables.</p>
  1133. <p>In Internet Explorer, pop-up text doesn't wrap properly when it reaches the
  1134. edge of the window. This may cause some text to be cut off.</p>
  1135. <p>In Internet Explorer, when pop-up text is added to a link or to hot text presented
  1136. with the display() function, any space inserted after the link or the hot text
  1137. is not displayed. This problem does not occur if pop-up text is not used. For
  1138. example, this code:</p>
  1139. <p><code>Place your mouse pointer<br>
  1140. <br>
  1141. &lt;script language="JavaScript"&gt;<br>
  1142. text = "here"<br>
  1143. popupText = "this is the pop-up text"<br>
  1144. display(text)<br>
  1145. &lt;/script&gt;<br>
  1146. <br>
  1147. to view the pop-up text. </code></p>
  1148. <p>should be displayed like this:</p>
  1149. <p>Place your mouse pointer here to view the pop-up text.</p>
  1150. <p>Instead it is displayed like this:</p>
  1151. <p>Place your mouse pointer hereto view the pop-up text. [no space between &quot;here&quot; and &quot;to&quot;] </p>
  1152. <p>Here is a workaround for the problem:</p>
  1153. <p><code>Place your mouse pointer<br>
  1154. <br>
  1155. &lt;script language="JavaScript"&gt;<br>
  1156. text = "here"<br>
  1157. popupText = "this is the pop-up text"<br>
  1158. display(text)<br>
  1159. &lt;/script&gt;&amp;nbsp;to<br>
  1160. <br>
  1161. view the pop-up text.</code></p>
  1162. <p><b>Opening First Page in New Window</b></p>
  1163. <p>The connect.js library file may not load properly when a Connection System
  1164. page is opened in a new browser window by right-clicking on a link and selecting &quot;Open
  1165. in new window.&quot; To avoid this problem, it is best not to use Connection
  1166. System functions in the opening page of a hypertext, since a reader may open
  1167. this page in a new browser window when following a link to it from another
  1168. Web site.</p>
  1169. <p>&nbsp;</p>
  1170. <!--msnavigation--></td><td valign="top" width="24"></td><td valign="top" width="1%">
  1171. <p>&nbsp;&nbsp;</p>
  1172. </td></tr><!--msnavigation--></table></BODY>
  1173. </HTML>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement