There are 6 supporting dvi variations of the ‘CopyTo to-file op group’ dvi
command:
     
- 
From 
 - Start copying (at current address)
     
 - 
Until 
 - End copying (at current address)
     
 - 
Skip 
 - Start skipping (from current address)
     
 - 
Cont 
 - End skipping (at current-address)
     
 - 
Addr integer-label 
 - Associate current address with the integer-label of the
     given group
     
 - 
Set integer-label 
 - Replace the ‘current address’ in the following Skip/Cont
     (and  From/Until  ?)  commands  with  the  address  associated  to  the
     integer-label of the given group by an Addr command
 
   The code
   
B0
 
 \ht:special {t4ht@DCopyTo: \jobname-js.tex From bib }
 
B1
 
 \ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib }
 
B2
 
 \ht:special {t4ht@DCopyTo: \jobname-js.tex Addr1 bib }
 
B3
 
 \ht:special {t4ht@DCopyTo: \jobname-js.tex Addr2 bib }
 
B4
 
 \ht:special {t4ht@DCopyTo: \jobname-js.tex Set1 bib }
 
 \ht:special {t4ht@DCopyTo: \jobname-js.tex Cont bib }
 
 \ht:special {t4ht@DCopyTo: \jobname-js.tex Set2 bib }
 
 \ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib }
 
B5
 
\ht:special {t4ht@DCopyTo: \jobname-js.tex Until bib }
 
B6
   produces the string ‘ B1 B3 ’.
   
   
    \def\js:on{%
  
   \global\let\js:on=\relax
  
   \HCode{<!--}%
  
   <.js From js.>%
  
   \HCode{\string\def\string\jstoday{\:today} }%
  
   \HCode{\string\input\space onmouseover.4ht }%
  
   \:CheckOption{trace-onmo} \if:Option
  
       \HCode{<js trace="on">}%
  
   \else
  
      \Log:Note{for mouseover tracing of
  
           compilation, use the command line option ‘trace-onmo’}
  
       \HCode{<js>}%
  
   \fi
  
   <.js Until js.>%
  
   \HCode{-->}%
  
   <.end js.>} -_-_-
   
 
    \csname a:mouseover-Needs\endcsname
  
 \Css{.js {text-indent:0; background-color:aqua; color:black;
  
    border:solid 1px black;  margin:2pt; width:99\%;}}
  
 \Css{.js p, .<.js p.bibitem css.>, <.js p.bibitem-p css.> {text-indent:0;
  
    background-color:aqua; color:black; margin:2pt;}}
  
 \AtEndDocument{{\HCode{<!--}%
  
   <.js From js.>%
  
   \HCode{</js>}%
  
   <.js Until js.>%
  
   \HCode{-->}}}% -_-_-
   
 
   Was \Css{.js p {margin:0; text-indent:0;}} but javascript under netscape
had problems dealing with 0 left margins.
    \ht:special {t4ht@DCopyTo: \jobname-js.tex From js }%
-_-_-
   
 
    \ht:special {t4ht@DCopyTo: \jobname-js.tex Until js }%
-_-_-
   
 
   
    \HAssign\MO:script = 0
  
 \NewConfigure{mouseover-script}[1]{\bgroup
  
   \gHAdvance\MO:script by 1
  
   \expandafter\NextFile \expandafter{\jobname\MO:script.tmp}%
  
   \HPage{}\IgnorePar <.js From var.>%
  
     \HCode{<\if !#1!\else mouseover-script\fi>#1\if !#1!\else =\fi}%
  
     \everyvbox{\IgnorePar\everyvbox{}\aftergroup\end:movar}%
  
     \def\end:movar{\everyvbox{}\HCode
  
                    {</\if !#1!\else mouseover-script\fi>}%
  
         <.js Until var.>\EndHPage{}%
  
         \egroup}%
  
     \vbox} -_-_-
   
 
    \Configure {mouseover-script}{}{\HCode{ol\string_hauto = 1;}}%
-_-_-
   
 
    \ht:special {t4ht@DCopyTo: \jobname-js.tex From var }%
-_-_-
   
 
    \ht:special {t4ht@DCopyTo: \jobname-js.tex Until var }%
-_-_-
   
 
    \expandafter\def\csname c:mouseover-vars:\endcsname#1#2{%
  
    \expandafter\def\csname mouseover-#1-init\endcsname##1{}%
  
    \def\:tempc##1{\expandafter\append:defI\csname
  
       mouseover-#1-init\endcsname{tex4ht.##1=tex4ht.\expandafter\jsHash
  
       \expandafter{\expandafter v####1.##1};}}%
  
    \Mo:vars#2,<>}
  
 \def\Mo:vars#1,#2<>{%
  
    \if !#1!\else
  
       \expandafter\def\csname mo#1\endcsname##1{%
  
           \HCode{<!--}%
  
           \ht:special{t4ht@DCopyTo: \jobname-js.tex From #1 }%
  
           \HCode{<#1-var>\jsHash{v##1.#1}=}%
  
           \ht:special{t4ht@DCopyTo: \jobname-js.tex Skip #1 }%
  
           \HCode{-->}%
  
           \ht:special{t4ht@DCopyTo: \jobname-js.tex Cont #1 }%
  
       }%
  
       \expandafter\def\csname endmo#1\endcsname{%
  
           \ht:special{t4ht@DCopyTo: \jobname-js.tex Skip #1 }%
  
           \HCode{<!--}%
  
           \ht:special{t4ht@DCopyTo: \jobname-js.tex Cont #1 }%
  
           \HCode{</#1-var>}%
  
           \ht:special{t4ht@DCopyTo: \jobname-js.tex Until #1 }%
  
           \HCode{-->}%
  
       }%
  
       \:tempc{#1}%
  
    \fi
  
    \if !#2!\else \expand:after{\Mo:vars#2<>}\fi
  
 }
-_-_-
   
 
   
    \ht:special {t4ht@DCopyTo: \jobname-js.tex From fn }%
-_-_-
   
 
    \ht:special {t4ht@DCopyTo: \jobname-js.tex Skip fn }%
-_-_-
   
 
    \ht:special {t4ht@DCopyTo: \jobname-js.tex Cont fn }%
-_-_-
   
 
    \ht:special {t4ht@DCopyTo: \jobname-js.tex Until fn }%
-_-_-
   
 
   
egroup for overlib, home over overlib
    \HCode{<div id="overDiv"
  
          style="position:absolute;
  
                       visibility:hidden; z-index:1000;"></div>
  
 }%
-_-_-
   
 
   
    \Log:Note{Option ‘mouseover’ is powered
  
   by the overlib.js utility of Erik Bosrup
  
   (http://www.bosrup.com/web/overlib/).}
  
 \immediate\write-1{}
  
 \immediate\write-1{The option requires two compilations of
  
   the source file.}
  
 \immediate\write-1{}
  
 \immediate\write-1{Use \string\Configure
  
   {mouseover-XXX}{...} to introduce extra arguments into the overlib
  
   function call ‘return overlib(...)’. XXX stands for
  
   ‘cite’, ‘footnote’, or ’gloss’. The default body is at tex4ht.body,
  
   and the default caption at tex4ht.caption. An empty parameter
  
   requests no  sensitivity of the  mouse for the
  
   specified type of entries.}
  
 \immediate\write-1{}
  
 \immediate\write-1{The variant \string\Configure
  
   {mouseover-XXX}[labels]{...} of the above command restricts the
  
   outcome just to the listed labels (i.e., the values listed
  
   in tex4ht.caption).}
  
 \immediate\write-1{}
  
 \immediate\write-1{The \string\Configure{mouseover-script}{variable-name}
  
   {javascript-code} command may be used to introduce code into the
  
   javascript file, as a content of a global variable when a name is
  
   given and as a bare code when the name is not given.  To be referenced,
  
   the name must be prefixed by ‘‘tex4ht.’.}
  
 \immediate\write-1{}
  
 \immediate\write-1{The \string\Configure{mouseover-vars}{XXX}
  
   {variable-list} command introduces local variables, to be referenced
  
   with the prefix ‘‘tex4ht.’ on their names. In addition, for each
  
   variable YYY  it introduces a construct \string\moYYY
  
   {label}...\string\endmoYYY\space for selecting a value for the variable
  
   at the specified label.}
  
 \immediate\write-1{}
  
 \immediate\write-1{Example:}
  
 \immediate\write-1{
  
   \string\Configure{mouseover-script}{var}{\HCode{<hr />}}}
  
 \immediate\write-1{<.mouseover cite config.>}
  
 \immediate\write-1{<.mouseover cite css.>.}
  
 \immediate\write-1{
  
   \string\moAuthor{bb}A name\string\endmoAuthor }
  
 \immediate\write-1{}
  
 \immediate\write-1{The compilation indirectly invokes the
  
   command ’xhtex \string\jobname-js’.  An alternative format for
  
   the command can be requested within a configuration of
  
   the form \string\Configure{mouseover-Needs}{\string\Needs{"..."}}.
  
   The default setting is due to
  
   \string\Configure{mouseover-Needs}{\string\Needs{"xhtex
  
   \string\jobname-js"}}}
  
 \immediate\write-1{In case \string\Configure{mouseover-Needs} is
  
   undefined, introduce the instruction
  
   \string\NewConfigure{mouseover-Needs}{1} before that command.
  
 } -_-_-
   
 
    \expandafter\ifx \csname mouseover-Needs\endcsname\relax
  
   \NewConfigure{mouseover-Needs}{1}
  
   \Configure{mouseover-Needs}{\Needs{"xhtex \jobname-js"}}
  
 \fi
  
 \def\mo:args#1#2#3{\expandafter
  
   \ifx \csname a:mouseover-#1-#2\endcsname\empty\else
  
   \expandafter \ifx \csname a:mouseover-#1-#2\endcsname\relax
  
     <.global mouseover-type.>\else
  
     <.private mouseover-type.>\fi\fi} -_-_-
   
 
    \expandafter \ifx \csname a:mouseover-#1\endcsname\empty
  
       \else
  
     \Hnewline
  
     onmouseover="tex4ht.body=tex4ht.#3; tex4ht.caption=’#2’;
  
             <.init mouseover vars.>%
  
               return overlib(\csname a:mouseover-#1\endcsname);"
  
    \Hnewline    onmouseout="nd();"\Hnewline\fi -_-_-
   
 
    \Hnewline
  
  onmouseover="tex4ht.body=tex4ht.#3; tex4ht.caption=’#2’;
  
             <.init mouseover vars.>%
  
             return overlib(\csname a:mouseover-#1-#2\endcsname);"
  
 \Hnewline onmouseout="nd();"\Hnewline -_-_-
   
 
    \expandafter\ifx \csname mouseover-#1-init\endcsname\relax
  
             \else \csname mouseover-#1-init\endcsname{#2}\fi
-_-_-
   
 
   
    \:CheckOption{xhtml} \if:Option  \else
  
    \:CheckOption{DOCTYPE} \if:Option
  
     \Log:Note{to request a DOCTYPE declaration
  
           use the command line option ‘DOCTYPE’}
  
    \else
  
       \edef\Preamble{\Preamble,no-DOCTYPE}
  
    \fi
  
 \fi
-_-_-
   
 
    <script type="text/javascript" src="overlib.js"><!-- overLIB (c) Erik Bosrup --></script>
  
 <!--http://www.bosrup.com/web/overlib/-->%
-_-_-
   
 
     
     - 
     
     THE DOCUMENT DECLARATION GIVES TROUBLE IN CONNECTION WITH OVERLIB.  It
      
would be hardly noticeable in small pages, requiring no scrolling -
      
the only symptom then is that the browser suddenly warns about errors
      
- those ones in overlib, and as a matter of fact, apparently in the
      
part of the script that ensures compatibility with Netscape.  However,
      
in a large page, the pop-ups seem to disappear - making them STICKY
      
and scrolling up, one can find them in the upper right corner.  One
      
has only to remove <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
      
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> however, to
      
put an end to the browser complaints and get back the pop-ups into
      
their proper places.  
     
     
 
     - 
     
      I
      
have just found a reference to the trouble, together with a very easy
      
way to go round it: it is enough to add <?xml version="1.1"?> BEFORE
      
the Document declaration. I have checked it, and it is all right -
      
both for Explorer6 and Netscape 4.7 and 6.
      
      
By the way: for the Mouseover option to work under Netscape4.x, the call to
      
<script type="text/JavaScript" src="overlib.js"></script>
      
<!--http://www.bosrup.com/web/overlib/ (Erik Bosrup)-->
      
MUST appear in the <BODY> section, NOT in the <HEAD>: absurd, but true (it
      
is reported in Overlib’s page).
     
      
   
    \ifnum\the\catcode‘\%=14\else\expandafter\edef\csname
  
   \string:RestoreCatcodes\endcsname{\catcode‘\%=\the
  
   \catcode‘\%}\catcode‘\%=14\fi
  
 % onmouseover.4ht (2014-07-14-18:32), generated from tex4ht-html4.tex
  
 % Copyright (C) 2009-2010 TeX Users Group
  
 % Copyright (C) 2001-2009 Eitan M. Gurari
  
 <.TeX4ht copywrite.>
  
 
  
 \hbadness=10000 \vbadness=10000 \hfuzz=99in \vfuzz=\hfuzz
  
 \overfullrule=0pt   \let\makefootline\empty
  
 \special{t4ht.js}
  
 
  
 \newcount\CodeNumber
  
 \def\NoSpecials#1#2#3{\edef\temp{\the\CodeNumber}%
  
      \global\CodeNumber=#3
  
      \def\next{\catcode\CodeNumber=#1
  
        \ifnum \CodeNumber=#2 \let\next=\relax \fi
  
        \global\advance\CodeNumber by -1 \next}\next
  
      \global\CodeNumber=\temp  }%
  
 
  
 \expandafter\def\csname js js\endcsname{\egroup  \special{t4ht@@}%
  
    tex4ht=new Array() ; //\jstoday}
  
 \expandafter\def\csname js js trace="on"\endcsname{\global
  
    \let\TagTrace=\empty \csname js js\endcsname}
  
 \expandafter\def\csname js /js\endcsname{\egroup \special{t4ht@@}%
  
    \csname bye\endcsname\endinput}
  
 
  
 <.hash for onmouseover.4ht.>
  
 <.escape backslashes.>
  
 \catcode‘\<=13
  
 \def\jselement#1{\expandafter\def\csname js #1\endcsname##1=##2</#1>{%
  
    \hfill\break tex4ht.\jsHash{##1}=\hbox{"##2";}\egroup}}
  
 <.escape double quotes.>
  
 \expandafter\def\csname js \endcsname#1</>{%
  
    \hfill\break \hbox{#1}\egroup}
  
 
  
 \def<#1>{\bgroup
  
    \expandafter \ifx \csname js #1\endcsname \relax \jselement{#1}\fi
  
    \def<##1>{\TagTrace{\def\x{##1}\def\y####1:->{}%
  
       \immediate\write16{...\string<\expandafter\y\meaning\x>}}%
  
        \string<\scan ##1"<>>}%
  
    \NoSpecials{12}{0}{255}\NoSpecials{11}{65}{90}\NoSpecials{11}{97}{122}%
  
    \catcode‘\ =10 \catcode‘\^^M=10 \catcode‘\^^I=10 \catcode‘\<=13
  
    \catcode‘\\=13
  
    \tt \csname js #1\endcsname}
  
 \def\TagTrace#1{}
  
 \catcode‘\&=12 \catcode‘\#=12
  
 \endinput -_-_-
   
 
    \def\scan#1"#2<>{#1\if !#2!\expandafter\done\else
  
    \string\"\expandafter\scan
  
 \fi#2<>}
  
 \def\done#1>{}
-_-_-
   
 
    \catcode‘/=0 \catcode‘\\=13
  
 /def\{/string\/string\}
  
 /catcode‘/\=0 \catcode‘\/=12
-_-_-
   
 
    \def\jsHash#1{\jsHash:a #1<>}
  
 \def\jsHash:a#1#2<>{%
  
    \ifnum ‘#1<‘0 JjV\else
  
    \ifnum ‘#1>‘z jJv\else
  
    \ifnum ‘#1>‘9
  
       \ifnum ‘#1<‘A jJV\else
  
       \ifnum ‘#1>‘Z
  
          \ifnum ‘#1<‘a jVV\else #1\fi
  
       \else #1\fi\fi
  
    \else #1\fi\fi\fi
  
    \if !#2!\expandafter\done:hash
  
                        \else\expandafter\jsHash:a\fi#2<>}
  
 \def\done:hash#1>{}
-_-_-
   
 
    \def\jsHash#1{\jsHasha #1<>}
  
 \def\jsHasha#1#2<>{%
  
    \ifnum ‘#1<‘0 JjV\else
  
    \ifnum ‘#1>‘z jJv\else
  
    \ifnum ‘#1>‘9
  
       \ifnum ‘#1<‘A jJV\else
  
       \ifnum ‘#1>‘Z
  
          \ifnum ‘#1<‘a jVV\else #1\fi
  
       \else #1\fi\fi
  
    \else #1\fi\fi\fi
  
    \if !#2!\expandafter\done
  
                        \else\expandafter\jsHasha\fi#2<>}
-_-_-
   
 
    \expandafter\Odef\csname c:mouseover-?:\endcsname[#1]#2{%
  
   \def\:temp{#2}%
  
   \if !#1!\expandafter\let\csname a:mouseover-\:tempb\endcsname=\:temp
  
   \else \om:type#1,<.par del.>\fi}
  
 \def\om:type#1,#2<.par del.>{%
  
   \if !#1!\else\expandafter
  
      \let\csname a:mouseover-\:tempb-#1\endcsname=\:temp\fi
  
   \ifx !#2!\else \def\:tempa{\om:type#2<.par del.>}\expandafter\:tempa \fi
  
 } -_-_-