diff src/monoize.sml @ 1786:d794149b3713

<active>
author Adam Chlipala <adam@chlipala.net>
date Sat, 21 Jul 2012 13:55:35 -0400
parents 5bc4fbf9c0fe
children 2e01a36701eb
line wrap: on
line diff
--- a/src/monoize.sml	Sat Jul 21 11:59:41 2012 -0400
+++ b/src/monoize.sml	Sat Jul 21 13:55:35 2012 -0400
@@ -3234,7 +3234,7 @@
                 val (style, fm) = monoExp (env, st, fm) style
                 val (dynStyle, fm) = monoExp (env, st, fm) dynStyle
 
-                val dynamics = ["dyn", "ctextbox", "ccheckbox", "cselect", "coption", "ctextarea"]
+                val dynamics = ["dyn", "ctextbox", "ccheckbox", "cselect", "coption", "ctextarea", "active"]
 
                 fun isSome (e, _) =
                     case e of
@@ -3541,9 +3541,19 @@
                                        (L'.EStrcat ((L'.EJavaScript (L'.Script, e), loc),
                                                     (L'.EPrim (Prim.String ("))</script>")), loc)), loc)), loc),
 				 fm)
-                              | _ => raise Fail "Monoize: Bad dyn attributes"
+                              | _ => raise Fail "Monoize: Bad <dyn> attributes"
 			end
 
+                      | "active" =>
+                        (case attrs of
+			     [("Code", e, _)] =>
+			     ((L'.EStrcat
+                                   ((L'.EPrim (Prim.String ("<script type=\"text/javascript\">active(execD(")), loc),
+                                    (L'.EStrcat ((L'.EJavaScript (L'.Script, e), loc),
+                                                 (L'.EPrim (Prim.String ("))</script>")), loc)), loc)), loc),
+			      fm)
+                           | _ => raise Fail "Monoize: Bad <active> attributes")
+
                       | "submit" => normal ("input type=\"submit\"", NONE)
                       | "image" => normal ("input type=\"image\"", NONE)
                       | "button" => normal ("input type=\"submit\"", NONE)