| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456 | <!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>
 |