Код:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220.
function processContents(elemName: string, attr?: any, contents?: any): string {
var sHTML: string = "<" + elemName + " " + getAttr(attr);
if (contents) {
sHTML += ">";
var toClass = {}.toString;
var className = toClass.call(contents);
if (className == '[object Array]') {
for (var i in contents) sHTML += contents[i];
} else {
sHTML += contents;
}
sHTML += "</" + elemName + ">";
} else {
sHTML += "/>"
}
return sHTML;
}
function getAttr(attr?: IElement): string {
var ret: string = "";
for (var p in attr) ret += p + "='" + attr[p] + "' ";
return ret;
}
interface IElement { id?: string; class?: string; }
interface IaElement { id?:string; class?:string; accesskey?: string; coords?: string; download?: string; href?: string; hreflang?: string; name?: string; rel?: string; rev?: string; shape?: string; tabindex?: string; target?: string; title?: string; type?: string; }
interface IabbrElement { id?:string; class?:string; title?: string; }
interface IappletElement { id?:string; class?:string; align?: string; alt?: string; archive?: string; code?: string; codebase?: string; height?: string; hspace?: string; vspace?: string; width?: string; }
interface IareaElement { id?:string; class?:string; accesskey?: string; alt?: string; coords?: string; href?: string; hreflang?: string; nohref?: string; shape?: string; tabindex?: string; target?: string; type?: string; }
interface IaudioElement { id?:string; class?:string; autoplay?: string; controls?: string; loop?: string; muted?: string; preload?: string; src?: string; }
interface IbaseElement { id?:string; class?:string; href?: string; target?: string; }
interface IbasefontElement { id?:string; class?:string; color?: string; face?: string; size?: string; }
interface IbdoElement { id?:string; class?:string; dir?: string; }
interface IbgsoundElement { id?:string; class?:string; balance?: string; loop?: string; src?: string; volume?: string; }
interface IbodyElement { id?:string; class?:string; alink?: string; background?: string; bgcolor?: string; bgproperties?: string; bottommargin?: string; leftmargin?: string; link?: string; rightmargin?: string; scroll?: string; text?: string; topmargin?: string; vlink?: string; }
interface IbrElement { id?:string; class?:string; clear?: string; }
interface IbuttonElement { id?:string; class?:string; accesskey?: string; autofocus?: string; disabled?: string; form?: string; formaction?: string; formenctype?: string; formmethod?: string; formnovalidate?: string; formtarget?: string; name?: string; type?: string; value?: string; }
interface IcaptionElement { id?:string; class?:string; align?: string; valign?: string; }
interface IcolElement { id?:string; class?:string; align?: string; char?: string; charoff?: string; span?: string; valign?: string; width?: string; }
interface IcolgroupElement { id?:string; class?:string; align?: string; char?: string; charoff?: string; span?: string; valign?: string; width?: string; }
interface IdelElement { id?:string; class?:string; cite?: string; datetime?: string; }
interface IdivElement { id?:string; class?:string; align?: string; title?: string; }
interface IembedElement { id?:string; class?:string; align?: string; height?: string; hidden?: string; hspace?: string; pluginspage?: string; src?: string; type?: string; vspace?: string; width?: string; }
interface IfieldsetElement { id?:string; class?:string; disabled?: string; form?: string; title?: string; }
interface IfontElement { id?:string; class?:string; color?: string; face?: string; size?: string; }
interface IformElement { id?:string; class?:string; acceptCharset?: string; action?: string; autocomplete?: string; enctype?: string; method?: string; name?: string; novalidate?: string; target?: string; }
interface IframeElement { id?:string; class?:string; bordercolor?: string; frameborder?: string; name?: string; noresize?: string; scrolling?: string; src?: string; }
interface IframesetElement { id?:string; class?:string; border?: string; bordercolor?: string; cols?: string; frameborder?: string; framespacing?: string; rows?: string; }
interface IhElement { id?:string; class?:string; align?: string; }
interface IheadElement { id?:string; class?:string; profile?: string; }
interface IhrElement { id?:string; class?:string; align?: string; color?: string; noshade?: string; size?: string; width?: string; }
interface IhtmlElement { id?:string; class?:string; manifest?: string; title?: string; xmlns?: string; }
interface IiframeElement { id?:string; class?:string; align?: string; allowtransparency?: string; frameborder?: string; height?: string; hspace?: string; marginheight?: string; marginwidth?: string; name?: string; sandbox?: string; scrolling?: string; seamless?: string; src?: string; srcdoc?: string; vspace?: string; width?: string; }
interface IimgElement { id?:string; class?:string; align?: string; alt?: string; border?: string; height?: string; hspace?: string; ismap?: string; longdesc?: string; lowsrc?: string; src?: string; usemap?: string; vspace?: string; width?: string; }
interface IinputElement { id?:string; class?:string; accept?: string; accesskey?: string; align?: string; alt?: string; autocomplete?: string; autofocus?: string; border?: string; checked?: string; disabled?: string; form?: string; formaction?: string; formenctype?: string; formmethod?: string; formnovalidate?: string; formtarget?: string; list?: string; max?: string; maxlength?: string; min?: string; multiple?: string; name?: string; pattern?: string; placeholder?: string; readonly?: string; required?: string; size?: string; src?: string; step?: string; tabindex?: string; type?: string; value?: string; }
interface IinsElement { id?:string; class?:string; cite?: string; datetime?: string; }
interface IlabelElement { id?:string; class?:string; accesskey?: string; for?: string; }
interface IlegendElement { id?:string; class?:string; accesskey?: string; align?: string; title?: string; }
interface IliElement { id?:string; class?:string; type?: string; value?: string; }
interface IlinkElement { id?:string; class?:string; charset?: string; href?: string; media?: string; rel?: string; sizes?: string; type?: string; }
interface ImapElement { id?:string; class?:string; name?: string; }
interface ImarqueeElement { id?:string; class?:string; behavior?: string; bgcolor?: string; direction?: string; height?: string; hspace?: string; loop?: string; scrollamount?: string; scrolldelay?: string; truespeed?: string; vspace?: string; width?: string; }
interface ImenuElement { id?:string; class?:string; label?: string; type?: string; }
interface ImetaElement { id?:string; class?:string; charset?: string; content?: string; httpEquiv?: string; name?: string; }
interface ImeterElement { id?:string; class?:string; high?: string; low?: string; max?: string; min?: string; optimum?: string; value?: string; }
interface IobjectElement { id?:string; class?:string; align?: string; archive?: string; classid?: string; code?: string; codebase?: string; codetype?: string; data?: string; height?: string; hspace?: string; tabindex?: string; type?: string; vspace?: string; width?: string; }
interface IolElement { id?:string; class?:string; reversed?: string; start?: string; type?: string; }
interface IoptgroupElement { id?:string; class?:string; disabled?: string; label?: string; }
interface IoptionElement { id?:string; class?:string; disabled?: string; label?: string; selected?: string; value?: string; }
interface IpElement { id?:string; class?:string; align?: string; }
interface IparamElement { id?:string; class?:string; name?: string; type?: string; value?: string; valuetype?: string; }
interface IscriptElement { id?:string; class?:string; async?: string; defer?: string; language?: string; src?: string; type?: string; }
interface IselectElement { id?:string; class?:string; accesskey?: string; autofocus?: string; disabled?: string; form?: string; multiple?: string; name?: string; required?: string; size?: string; tabindex?: string; }
interface IsourceElement { id?:string; class?:string; media?: string; src?: string; type?: string; }
interface IstyleElement { id?:string; class?:string; media?: string; type?: string; }
interface ItableElement { id?:string; class?:string; align?: string; background?: string; bgcolor?: string; border?: string; bordercolor?: string; cellpadding?: string; cellspacing?: string; cols?: string; frame?: string; height?: string; rules?: string; summary?: string; width?: string; }
interface ItbodyElement { id?:string; class?:string; align?: string; bgcolor?: string; char?: string; charoff?: string; valign?: string; }
interface ItdElement { id?:string; class?:string; abbr?: string; align?: string; axis?: string; background?: string; bgcolor?: string; bordercolor?: string; char?: string; charoff?: string; colspan?: string; headers?: string; height?: string; nowrap?: string; rowspan?: string; scope?: string; valign?: string; width?: string; }
interface ItextareaElement { id?:string; class?:string; accesskey?: string; autofocus?: string; cols?: string; disabled?: string; form?: string; maxlength?: string; name?: string; placeholder?: string; readonly?: string; required?: string; rows?: string; tabindex?: string; wrap?: string; }
interface ItfootElement { id?:string; class?:string; align?: string; bgcolor?: string; char?: string; charoff?: string; valign?: string; }
interface IthElement { id?:string; class?:string; abbr?: string; align?: string; axis?: string; background?: string; bgcolor?: string; bordercolor?: string; char?: string; charoff?: string; colspan?: string; headers?: string; height?: string; nowrap?: string; rowspan?: string; scope?: string; valign?: string; width?: string; }
interface ItheadElement { id?:string; class?:string; align?: string; bgcolor?: string; char?: string; charoff?: string; valign?: string; }
interface ItimeElement { id?:string; class?:string; datetime?: string; pubdate?: string; }
interface ItrElement { id?:string; class?:string; align?: string; bgcolor?: string; bordercolor?: string; char?: string; charoff?: string; valign?: string; }
interface IulElement { id?:string; class?:string; type?: string; }
interface IvideoElement { id?:string; class?:string; autoplay?: string; controls?: string; height?: string; loop?: string; poster?: string; preload?: string; src?: string; width?: string; }
function a(attr?: IaElement, contents?: any, callbck?) { return processContents("a", attr, contents) }
function abbr(attr?: IabbrElement, contents?: any) { return processContents("abbr", attr, contents) }
function acronym(attr?: IElement, contents?: any) { return processContents("acronym", attr, contents) }
function address(attr?: IElement, contents?: any) { return processContents("address", attr, contents) }
function applet(attr?: IappletElement, contents?: any) { return processContents("applet", attr, contents) }
function area(attr?: IareaElement, contents?: any) { return processContents("area", attr, contents) }
function article(attr?: IElement, contents?: any) { return processContents("article", attr, contents) }
function aside(attr?: IElement, contents?: any) { return processContents("aside", attr, contents) }
function audio(attr?: IaudioElement, contents?: any) { return processContents("audio", attr, contents) }
function b(attr?: IElement, contents?: any) { return processContents("b", attr, contents) }
function base(attr?: IbaseElement, contents?: any) { return processContents("base", attr, contents) }
function basefont(attr?: IbasefontElement, contents?: any) { return processContents("basefont", attr, contents) }
function bdi(attr?: IElement, contents?: any) { return processContents("bdi", attr, contents) }
function bdo(attr?: IbdoElement, contents?: any) { return processContents("bdo", attr, contents) }
function bgsound(attr?: IbgsoundElement, contents?: any) { return processContents("bgsound", attr, contents) }
function big(attr?: IElement, contents?: any) { return processContents("big", attr, contents) }
function blink(attr?: IElement, contents?: any) { return processContents("blink", attr, contents) }
function blockquote(attr?: IElement, contents?: any) { return processContents("blockquote", attr, contents) }
function body(attr?: IbodyElement, contents?: any) { return processContents("body", attr, contents) }
function br(attr?: IbrElement, contents?: any) { return processContents("br", attr, contents) }
function button(attr?: IbuttonElement, contents?: any) { return processContents("button", attr, contents) }
function canvas(attr?: IElement, contents?: any) { return processContents("canvas", attr, contents) }
function caption(attr?: IcaptionElement, contents?: any) { return processContents("caption", attr, contents) }
function center(attr?: IElement, contents?: any) { return processContents("center", attr, contents) }
function cite(attr?: IElement, contents?: any) { return processContents("cite", attr, contents) }
function code(attr?: IElement, contents?: any) { return processContents("code", attr, contents) }
function col(attr?: IcolElement, contents?: any) { return processContents("col", attr, contents) }
function colgroup(attr?: IcolgroupElement, contents?: any) { return processContents("colgroup", attr, contents) }
function command(attr?: IElement, contents?: any) { return processContents("command", attr, contents) }
function comment(attr?: IElement, contents?: any) { return processContents("comment", attr, contents) }
function datalist(attr?: IElement, contents?: any) { return processContents("datalist", attr, contents) }
function dd(attr?: IElement, contents?: any) { return processContents("dd", attr, contents) }
function del(attr?: IdelElement, contents?: any) { return processContents("del", attr, contents) }
function details(attr?: IElement, contents?: any) { return processContents("details", attr, contents) }
function dfn(attr?: IElement, contents?: any) { return processContents("dfn", attr, contents) }
function dir(attr?: IElement, contents?: any) { return processContents("dir", attr, contents) }
function div(attr?: IdivElement, contents?: any) { return processContents("div", attr, contents) }
function dl(attr?: IElement, contents?: any) { return processContents("dl", attr, contents) }
function dt(attr?: IElement, contents?: any) { return processContents("dt", attr, contents) }
function em(attr?: IElement, contents?: any) { return processContents("em", attr, contents) }
function embed(attr?: IembedElement, contents?: any) { return processContents("embed", attr, contents) }
function fieldset(attr?: IfieldsetElement, contents?: any) { return processContents("fieldset", attr, contents) }
function figcaption(attr?: IElement, contents?: any) { return processContents("figcaption", attr, contents) }
function figure(attr?: IElement, contents?: any) { return processContents("figure", attr, contents) }
function font(attr?: IfontElement, contents?: any) { return processContents("font", attr, contents) }
function footer(attr?: IElement, contents?: any) { return processContents("footer", attr, contents) }
function form(attr?: IformElement, contents?: any) { return processContents("form", attr, contents) }
function frame(attr?: IframeElement, contents?: any) { return processContents("frame", attr, contents) }
function frameset(attr?: IframesetElement, contents?: any) { return processContents("frameset", attr, contents) }
function h1(attr?: IhElement, contents?: any) { return processContents("h1", attr, contents) }
function h2(attr?: IhElement, contents?: any) { return processContents("h2", attr, contents) }
function h3(attr?: IhElement, contents?: any) { return processContents("h3", attr, contents) }
function h4(attr?: IhElement, contents?: any) { return processContents("h4", attr, contents) }
function h5(attr?: IhElement, contents?: any) { return processContents("h5", attr, contents) }
function h6(attr?: IhElement, contents?: any) { return processContents("h6", attr, contents) }
function head(attr?: IheadElement, contents?: any) { return processContents("head", attr, contents) }
function header(attr?: IElement, contents?: any) { return processContents("header", attr, contents) }
function hgroup(attr?: IElement, contents?: any) { return processContents("hgroup", attr, contents) }
function hr(attr?: IhrElement, contents?: any) { return processContents("hr", attr, contents) }
function html(attr?: IhtmlElement, contents?: any) { return processContents("html", attr, contents) }
function i(attr?: IElement, contents?: any) { return processContents("i", attr, contents) }
function iframe(attr?: IiframeElement, contents?: any) { return processContents("iframe", attr, contents) }
function img(attr?: IimgElement, contents?: any) { return processContents("img", attr, contents) }
function input(attr?: IinputElement, contents?: any) { return processContents("input", attr, contents) }
function ins(attr?: IinsElement, contents?: any) { return processContents("ins", attr, contents) }
function isindex(attr?: IElement, contents?: any) { return processContents("isindex", attr, contents) }
function kbd(attr?: IElement, contents?: any) { return processContents("kbd", attr, contents) }
function keygen(attr?: IElement, contents?: any) { return processContents("keygen", attr, contents) }
function label(attr?: IlabelElement, contents?: any) { return processContents("label", attr, contents) }
function legend(attr?: IlegendElement, contents?: any) { return processContents("legend", attr, contents) }
function li(attr?: IliElement, contents?: any) { return processContents("li", attr, contents) }
function link(attr?: IlinkElement, contents?: any) { return processContents("link", attr, contents) }
function listing(attr?: IElement, contents?: any) { return processContents("listing", attr, contents) }
function main(attr?: IElement, contents?: any) { return processContents("main", attr, contents) }
function map(attr?: ImapElement, contents?: any) { return processContents("map", attr, contents) }
function mark(attr?: IElement, contents?: any) { return processContents("mark", attr, contents) }
function marquee(attr?: ImarqueeElement, contents?: any) { return processContents("marquee", attr, contents) }
function menu(attr?: ImenuElement, contents?: any) { return processContents("menu", attr, contents) }
function meta(attr?: ImetaElement, contents?: any) { return processContents("meta", attr, contents) }
function meter(attr?: ImeterElement, contents?: any) { return processContents("meter", attr, contents) }
function multicol(attr?: IElement, contents?: any) { return processContents("multicol", attr, contents) }
function nav(attr?: IElement, contents?: any) { return processContents("nav", attr, contents) }
function nobr(attr?: IElement, contents?: any) { return processContents("nobr", attr, contents) }
function noembed(attr?: IElement, contents?: any) { return processContents("noembed", attr, contents) }
function noframes(attr?: IElement, contents?: any) { return processContents("noframes", attr, contents) }
function noscript(attr?: IElement, contents?: any) { return processContents("noscript", attr, contents) }
function object(attr?: IobjectElement, contents?: any) { return processContents("object", attr, contents) }
function ol(attr?: IolElement, contents?: any) { return processContents("ol", attr, contents) }
function optgroup(attr?: IoptgroupElement, contents?: any) { return processContents("optgroup", attr, contents) }
function option(attr?: IoptionElement, contents?: any) { return processContents("option", attr, contents) }
function output(attr?: IElement, contents?: any) { return processContents("output", attr, contents) }
function p(attr?: IpElement, contents?: any) { return processContents("p", attr, contents) }
function param(attr?: IparamElement, contents?: any) { return processContents("param", attr, contents) }
function plaintext(attr?: IElement, contents?: any) { return processContents("plaintext", attr, contents) }
function pre(attr?: IElement, contents?: any) { return processContents("pre", attr, contents) }
function progress(attr?: IElement, contents?: any) { return processContents("progress", attr, contents) }
function q(attr?: IElement, contents?: any) { return processContents("q", attr, contents) }
function rp(attr?: IElement, contents?: any) { return processContents("rp", attr, contents) }
function rt(attr?: IElement, contents?: any) { return processContents("rt", attr, contents) }
function ruby(attr?: IElement, contents?: any) { return processContents("ruby", attr, contents) }
function s(attr?: IElement, contents?: any) { return processContents("s", attr, contents) }
function samp(attr?: IElement, contents?: any) { return processContents("samp", attr, contents) }
function script(attr?: IscriptElement, contents?: any) { return processContents("script", attr, contents) }
function section(attr?: IElement, contents?: any) { return processContents("section", attr, contents) }
function select(attr?: IselectElement, contents?: any) { return processContents("select", attr, contents) }
function small(attr?: IElement, contents?: any) { return processContents("small", attr, contents) }
function source(attr?: IsourceElement, contents?: any) { return processContents("source", attr, contents) }
function spacer(attr?: IElement, contents?: any) { return processContents("spacer", attr, contents) }
function span(attr?: IElement, contents?: any) { return processContents("span", attr, contents) }
function strike(attr?: IElement, contents?: any) { return processContents("strike", attr, contents) }
function strong(attr?: IElement, contents?: any) { return processContents("strong", attr, contents) }
function style(attr?: IstyleElement, contents?: any) { return processContents("style", attr, contents) }
function sub(attr?: IElement, contents?: any) { return processContents("sub", attr, contents) }
function summary(attr?: IElement, contents?: any) { return processContents("summary", attr, contents) }
function sup(attr?: IElement, contents?: any) { return processContents("sup", attr, contents) }
function table(attr?: ItableElement, contents?: any) { return processContents("table", attr, contents) }
function tbody(attr?: ItbodyElement, contents?: any) { return processContents("tbody", attr, contents) }
function td(attr?: ItdElement, contents?: any) { return processContents("td", attr, contents) }
function textarea(attr?: ItextareaElement, contents?: any) { return processContents("textarea", attr, contents) }
function tfoot(attr?: ItfootElement, contents?: any) { return processContents("tfoot", attr, contents) }
function th(attr?: IthElement, contents?: any) { return processContents("th", attr, contents) }
function thead(attr?: ItheadElement, contents?: any) { return processContents("thead", attr, contents) }
function time(attr?: ItimeElement, contents?: any) { return processContents("time", attr, contents) }
function title(attr?: IElement, contents?: any) { return processContents("title", attr, contents) }
function tr(attr?: ItrElement, contents?: any) { return processContents("tr", attr, contents) }
function track(attr?: IElement, contents?: any) { return processContents("track", attr, contents) }
function tt(attr?: IElement, contents?: any) { return processContents("tt", attr, contents) }
function u(attr?: IElement, contents?: any) { return processContents("u", attr, contents) }
function ul(attr?: IulElement, contents?: any) { return processContents("ul", attr, contents) }
function varElem(attr?: IElement, contents?: any) { return processContents("var", attr, contents) }
function video(attr?: IvideoElement, contents?: any) { return processContents("video", attr, contents) }
function wbr(attr?: IElement, contents?: any) { return processContents("wbr", attr, contents) }
function xmp(attr?: IElement, contents?: any) { return processContents("xmp", attr, contents) }
Использование:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
function MsgBox(text: string) {
$(div({ class: "modal fade" },
div({ class: "modal-dialog" },
div({ class: "modal-content alert-danger" },
[
div({ class: "modal-header" },
[
button({ type: "button", class: "close", "data-dismiss": "modal", "aria-hidden": true }, "×"),
h4({ class: "modal-title" }, "Сообщение")
]),
div({ class: "modal-body" }, p(null, text))
]
)
)
)).modal().on('hidden.bs.modal', function () { $(this).remove(); });
}
Зачем?
Вместо этого:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
function MsgBox(text: string) {
$('<div class="modal fade">' +
'<div class="modal-dialog">' +
'<div class="modal-content alert-danger">' +
'<div class="modal-header">' +
'<button type="button" class="close" data-dismiss = "modal" aria-hidden = "true">×</button>' +
'<h4 class="modal-title">Сообщение</h4>' +
'</div>' +
'<div class="modal-body"><p>' + text + '</p></div>' +
'</div>' +
'</div>' +
'</div>').modal().on('hidden.bs.modal', function () { $(this).remove(); });
}
Ну и подсказки начинают со страшной силой подсказывать:
|