annotate framework/env/ui/script.lua @ 0:9fdfb27f8e67
Version 1.0.0
author |
jbe/bsw |
date |
Sun Oct 25 12:00:00 2009 +0100 (2009-10-25) |
parents |
|
children |
5e32ef998acf |
rev |
line source |
jbe/bsw@0
|
1 --[[--
|
jbe/bsw@0
|
2 ui.script{
|
jbe/bsw@0
|
3 noscript_attr = noscript_attr, -- HTML attributes for noscript tag
|
jbe/bsw@0
|
4 noscript = noscript, -- string or function for noscript content
|
jbe/bsw@0
|
5 attr = attr, -- extra HTML attributes for script tag
|
jbe/bsw@0
|
6 type = type, -- type of script, defaults to "text/javascript"
|
jbe/bsw@0
|
7 script = script, -- string or function for script content
|
jbe/bsw@0
|
8 }
|
jbe/bsw@0
|
9
|
jbe/bsw@0
|
10 This function is used to insert a script into the active slot. It is currently not XML compliant and the script must not contain a closing script tag.
|
jbe/bsw@0
|
11
|
jbe/bsw@0
|
12 --]]--
|
jbe/bsw@0
|
13
|
jbe/bsw@0
|
14 -- TODO: CDATA or SGML comment?
|
jbe/bsw@0
|
15
|
jbe/bsw@0
|
16 function ui.script(args)
|
jbe/bsw@0
|
17 local args = args or {}
|
jbe/bsw@0
|
18 local noscript_attr = args.noscript_attr
|
jbe/bsw@0
|
19 local noscript = args.noscript
|
jbe/bsw@0
|
20 local attr = table.new(args.attr)
|
jbe/bsw@0
|
21 attr.type = attr.type or args.type or "text/javascript"
|
jbe/bsw@0
|
22 local script = args.script
|
jbe/bsw@0
|
23 if script and type(script) ~= "function" then
|
jbe/bsw@0
|
24 -- disable HTML entity escaping
|
jbe/bsw@0
|
25 script = function()
|
jbe/bsw@0
|
26 slot.put(args.script)
|
jbe/bsw@0
|
27 end
|
jbe/bsw@0
|
28 end
|
jbe/bsw@0
|
29 if noscript then
|
jbe/bsw@0
|
30 ui.tag{ tag = "noscript", attr = attr, content = noscript }
|
jbe/bsw@0
|
31 end
|
jbe/bsw@0
|
32 if script then
|
jbe/bsw@0
|
33 ui.tag{ tag = "script", attr = attr, content = script }
|
jbe/bsw@0
|
34 end
|
jbe/bsw@0
|
35 end
|