diff options
Diffstat (limited to 'tools/domprops.html')
-rw-r--r-- | tools/domprops.html | 456 |
1 files changed, 456 insertions, 0 deletions
diff --git a/tools/domprops.html b/tools/domprops.html new file mode 100644 index 00000000..e217b173 --- /dev/null +++ b/tools/domprops.html @@ -0,0 +1,456 @@ +<!doctype html> +<html> +<body> + <script> + !function(G) { + var domprops = []; + var objs = [ G ]; + var tagNames = [ + "a", + "abbr", + "acronym", + "address", + "applet", + "area", + "article", + "aside", + "audio", + "b", + "base", + "basefont", + "bdi", + "bdo", + "bgsound", + "big", + "blink", + "blockquote", + "body", + "br", + "button", + "canvas", + "caption", + "center", + "checked", + "cite", + "code", + "col", + "colgroup", + "command", + "comment", + "compact", + "content", + "data", + "datalist", + "dd", + "declare", + "defer", + "del", + "details", + "dfn", + "dialog", + "dir", + "disabled", + "div", + "dl", + "dt", + "element", + "em", + "embed", + "fieldset", + "figcaption", + "figure", + "font", + "footer", + "form", + "frame", + "frameset", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hgroup", + "hr", + "html", + "i", + "iframe", + "image", + "img", + "input", + "ins", + "isindex", + "ismap", + "kbd", + "keygen", + "label", + "legend", + "li", + "link", + "listing", + "main", + "map", + "mark", + "marquee", + "math", + "menu", + "menuitem", + "meta", + "meter", + "multicol", + "multiple", + "nav", + "nextid", + "nobr", + "noembed", + "noframes", + "nohref", + "noresize", + "noscript", + "noshade", + "nowrap", + "object", + "ol", + "optgroup", + "option", + "output", + "p", + "param", + "picture", + "plaintext", + "pre", + "progress", + "q", + "rb", + "readonly", + "rp", + "rt", + "rtc", + "ruby", + "s", + "samp", + "script", + "section", + "select", + "selected", + "shadow", + "slot", + "small", + "source", + "spacer", + "span", + "strike", + "strong", + "style", + "sub", + "summary", + "sup", + "svg", + "table", + "tbody", + "td", + "template", + "textarea", + "tfoot", + "th", + "thead", + "time", + "title", + "tr", + "track", + "tt", + "u", + "ul", + "var", + "video", + "wbr", + "xmp", + "XXX", + ]; + for (var n = 0; n < tagNames.length; n++) { + add(document.createElement(tagNames[n])); + } + var nsNames = { + "http://www.w3.org/1998/Math/MathML": [ + "annotation", + "annotation-xml", + "maction", + "maligngroup", + "malignmark", + "math", + "menclose", + "merror", + "mfenced", + "mfrac", + "mglyph", + "mi", + "mlabeledtr", + "mlongdiv", + "mmultiscripts", + "mn", + "mo", + "mover", + "mpadded", + "mphantom", + "mprescripts", + "mroot", + "mrow", + "ms", + "mscarries", + "mscarry", + "msgroup", + "msline", + "mspace", + "msqrt", + "msrow", + "mstack", + "mstyle", + "msub", + "msubsup", + "msup", + "mtable", + "mtd", + "mtext", + "mtr", + "munder", + "munderover", + "none", + "semantics", + ], + "http://www.w3.org/2000/svg": [ + "a", + "altGlyph", + "altGlyphDef", + "altGlyphItem", + "animate", + "animateColor", + "animateMotion", + "animateTransform", + "circle", + "clipPath", + "color-profile", + "cursor", + "defs", + "desc", + "discard", + "ellipse", + "feBlend", + "feColorMatrix", + "feComponentTransfer", + "feComposite", + "feConvolveMatrix", + "feDiffuseLighting", + "feDisplacementMap", + "feDistantLight", + "feDropShadow", + "feFlood", + "feFuncA", + "feFuncB", + "feFuncG", + "feFuncR", + "feGaussianBlur", + "feImage", + "feMerge", + "feMergeNode", + "feMorphology", + "feOffset", + "fePointLight", + "feSpecularLighting", + "feSpotLight", + "feTile", + "feTurbulence", + "filter", + "font", + "font-face", + "font-face-format", + "font-face-name", + "font-face-src", + "font-face-uri", + "foreignObject", + "g", + "glyph", + "glyphRef", + "hatch", + "hatchpath", + "hkern", + "image", + "line", + "linearGradient", + "marker", + "mask", + "mesh", + "meshgradient", + "meshpatch", + "meshrow", + "metadata", + "missing-glyph", + "mpath", + "path", + "pattern", + "polygon", + "polyline", + "radialGradient", + "rect", + "script", + "set", + "solidcolor", + "stop", + "style", + "svg", + "switch", + "symbol", + "text", + "textPath", + "title", + "tref", + "tspan", + "unknown", + "use", + "view", + "vkern", + ], + }; + if (document.createElementNS) for (var ns in nsNames) { + for (var n = 0; n < nsNames[ns].length; n++) { + add(document.createElementNS(ns, nsNames[ns][n])); + } + } + var skips = [ + G.alert, + G.back, + G.blur, + G.captureEvents, + G.clearImmediate, + G.clearInterval, + G.clearTimeout, + G.close, + G.confirm, + G.console, + G.dump, + G.fetch, + G.find, + G.focus, + G.forward, + G.getAttention, + G.history, + G.home, + G.location, + G.moveBy, + G.moveTo, + G.navigator, + G.open, + G.openDialog, + G.print, + G.process, + G.prompt, + G.resizeBy, + G.resizeTo, + G.setImmediate, + G.setInterval, + G.setTimeout, + G.showModalDialog, + G.sizeToContent, + G.stop, + ]; + var types = []; + var interfaces = [ + "beforeunloadevent", + "compositionevent", + "customevent", + "devicemotionevent", + "deviceorientationevent", + "dragevent", + "event", + "events", + "focusevent", + "hashchangeevent", + "htmlevents", + "keyboardevent", + "messageevent", + "mouseevent", + "mouseevents", + "storageevent", + "svgevents", + "textevent", + "touchevent", + "uievent", + "uievents", + ]; + var i = 0, full = false; + var addEvent = document.createEvent ? function(type) { + if (~indexOf(types, type)) return; + types.push(type); + for (var j = 0; j < interfaces.length; j++) try { + var event = document.createEvent(interfaces[j]); + event.initEvent(type, true, true); + add(event); + } catch (e) {} + } : function() {}; + var scanProperties = Object.getOwnPropertyNames ? function(o, fn) { + var names = Object.getOwnPropertyNames(o); + names.forEach(fn); + for (var k in o) if (!~indexOf(names, k)) fn(k); + } : function(o, fn) { + for (var k in o) fn(k); + }; + setTimeout(function next() { + for (var j = 10; --j >= 0 && i < objs.length; i++) { + var o = objs[i]; + var skip = ~indexOf(skips, o); + try { + scanProperties(o, function(k) { + if (!~indexOf(domprops, k)) domprops.push(k); + if (/^on/.test(k)) addEvent(k.slice(2)); + if (!full) try { + add(o[k]); + } catch (e) {} + }); + } catch (e) {} + if (skip || full) continue; + try { + add(o.__proto__); + } catch (e) {} + try { + add(o.prototype); + } catch (e) {} + try { + add(new o()); + } catch (e) {} + try { + add(o()); + } catch (e) {} + } + if (!full && objs.length > 20000) { + alert(objs.length); + full = true; + } + if (i < objs.length) { + setTimeout(next, 0); + } else { + document.write('<pre>[\n "' + domprops.sort().join('",\n "').replace(/&/g, "&").replace(/</g, "<") + '"\n]</pre>'); + } + }, 0); + + function add(o) { + if (o) switch (typeof o) { + case "function": + case "object": + if (!~indexOf(objs, o)) objs.push(o); + } + } + + function indexOf(list, value) { + var j = list.length; + while (--j >= 0) { + if (list[j] === value) break; + } + return j; + } + }(function() { + return this; + }()); + </script> +</body> +</html> |