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