1 |
|
2 | <html>
|
3 | <body>
|
4 | <script>
|
5 | !function(G) {
|
6 | var domprops = [];
|
7 | var objs = [ G ];
|
8 | var tagNames = [
|
9 | "a",
|
10 | "abbr",
|
11 | "acronym",
|
12 | "address",
|
13 | "applet",
|
14 | "area",
|
15 | "article",
|
16 | "aside",
|
17 | "audio",
|
18 | "b",
|
19 | "base",
|
20 | "basefont",
|
21 | "bdi",
|
22 | "bdo",
|
23 | "bgsound",
|
24 | "big",
|
25 | "blink",
|
26 | "blockquote",
|
27 | "body",
|
28 | "br",
|
29 | "button",
|
30 | "canvas",
|
31 | "caption",
|
32 | "center",
|
33 | "checked",
|
34 | "cite",
|
35 | "code",
|
36 | "col",
|
37 | "colgroup",
|
38 | "command",
|
39 | "comment",
|
40 | "compact",
|
41 | "content",
|
42 | "data",
|
43 | "datalist",
|
44 | "dd",
|
45 | "declare",
|
46 | "defer",
|
47 | "del",
|
48 | "details",
|
49 | "dfn",
|
50 | "dialog",
|
51 | "dir",
|
52 | "disabled",
|
53 | "div",
|
54 | "dl",
|
55 | "dt",
|
56 | "element",
|
57 | "em",
|
58 | "embed",
|
59 | "fieldset",
|
60 | "figcaption",
|
61 | "figure",
|
62 | "font",
|
63 | "footer",
|
64 | "form",
|
65 | "frame",
|
66 | "frameset",
|
67 | "h1",
|
68 | "h2",
|
69 | "h3",
|
70 | "h4",
|
71 | "h5",
|
72 | "h6",
|
73 | "head",
|
74 | "header",
|
75 | "hgroup",
|
76 | "hr",
|
77 | "html",
|
78 | "i",
|
79 | "iframe",
|
80 | "image",
|
81 | "img",
|
82 | "input",
|
83 | "ins",
|
84 | "isindex",
|
85 | "ismap",
|
86 | "kbd",
|
87 | "keygen",
|
88 | "label",
|
89 | "legend",
|
90 | "li",
|
91 | "link",
|
92 | "listing",
|
93 | "main",
|
94 | "map",
|
95 | "mark",
|
96 | "marquee",
|
97 | "math",
|
98 | "menu",
|
99 | "menuitem",
|
100 | "meta",
|
101 | "meter",
|
102 | "multicol",
|
103 | "multiple",
|
104 | "nav",
|
105 | "nextid",
|
106 | "nobr",
|
107 | "noembed",
|
108 | "noframes",
|
109 | "nohref",
|
110 | "noresize",
|
111 | "noscript",
|
112 | "noshade",
|
113 | "nowrap",
|
114 | "object",
|
115 | "ol",
|
116 | "optgroup",
|
117 | "option",
|
118 | "output",
|
119 | "p",
|
120 | "param",
|
121 | "picture",
|
122 | "plaintext",
|
123 | "pre",
|
124 | "progress",
|
125 | "q",
|
126 | "rb",
|
127 | "readonly",
|
128 | "rp",
|
129 | "rt",
|
130 | "rtc",
|
131 | "ruby",
|
132 | "s",
|
133 | "samp",
|
134 | "script",
|
135 | "section",
|
136 | "select",
|
137 | "selected",
|
138 | "shadow",
|
139 | "slot",
|
140 | "small",
|
141 | "source",
|
142 | "spacer",
|
143 | "span",
|
144 | "strike",
|
145 | "strong",
|
146 | "style",
|
147 | "sub",
|
148 | "summary",
|
149 | "sup",
|
150 | "svg",
|
151 | "table",
|
152 | "tbody",
|
153 | "td",
|
154 | "template",
|
155 | "textarea",
|
156 | "tfoot",
|
157 | "th",
|
158 | "thead",
|
159 | "time",
|
160 | "title",
|
161 | "tr",
|
162 | "track",
|
163 | "tt",
|
164 | "u",
|
165 | "ul",
|
166 | "var",
|
167 | "video",
|
168 | "wbr",
|
169 | "xmp",
|
170 | "XXX",
|
171 | ];
|
172 | for (var n = 0; n < tagNames.length; n++) {
|
173 | add(document.createElement(tagNames[n]));
|
174 | }
|
175 | var nsNames = {
|
176 | "http://www.w3.org/1998/Math/MathML": [
|
177 | "annotation",
|
178 | "annotation-xml",
|
179 | "maction",
|
180 | "maligngroup",
|
181 | "malignmark",
|
182 | "math",
|
183 | "menclose",
|
184 | "merror",
|
185 | "mfenced",
|
186 | "mfrac",
|
187 | "mglyph",
|
188 | "mi",
|
189 | "mlabeledtr",
|
190 | "mlongdiv",
|
191 | "mmultiscripts",
|
192 | "mn",
|
193 | "mo",
|
194 | "mover",
|
195 | "mpadded",
|
196 | "mphantom",
|
197 | "mprescripts",
|
198 | "mroot",
|
199 | "mrow",
|
200 | "ms",
|
201 | "mscarries",
|
202 | "mscarry",
|
203 | "msgroup",
|
204 | "msline",
|
205 | "mspace",
|
206 | "msqrt",
|
207 | "msrow",
|
208 | "mstack",
|
209 | "mstyle",
|
210 | "msub",
|
211 | "msubsup",
|
212 | "msup",
|
213 | "mtable",
|
214 | "mtd",
|
215 | "mtext",
|
216 | "mtr",
|
217 | "munder",
|
218 | "munderover",
|
219 | "none",
|
220 | "semantics",
|
221 | ],
|
222 | "http://www.w3.org/2000/svg": [
|
223 | "a",
|
224 | "altGlyph",
|
225 | "altGlyphDef",
|
226 | "altGlyphItem",
|
227 | "animate",
|
228 | "animateColor",
|
229 | "animateMotion",
|
230 | "animateTransform",
|
231 | "circle",
|
232 | "clipPath",
|
233 | "color-profile",
|
234 | "cursor",
|
235 | "defs",
|
236 | "desc",
|
237 | "discard",
|
238 | "ellipse",
|
239 | "feBlend",
|
240 | "feColorMatrix",
|
241 | "feComponentTransfer",
|
242 | "feComposite",
|
243 | "feConvolveMatrix",
|
244 | "feDiffuseLighting",
|
245 | "feDisplacementMap",
|
246 | "feDistantLight",
|
247 | "feDropShadow",
|
248 | "feFlood",
|
249 | "feFuncA",
|
250 | "feFuncB",
|
251 | "feFuncG",
|
252 | "feFuncR",
|
253 | "feGaussianBlur",
|
254 | "feImage",
|
255 | "feMerge",
|
256 | "feMergeNode",
|
257 | "feMorphology",
|
258 | "feOffset",
|
259 | "fePointLight",
|
260 | "feSpecularLighting",
|
261 | "feSpotLight",
|
262 | "feTile",
|
263 | "feTurbulence",
|
264 | "filter",
|
265 | "font",
|
266 | "font-face",
|
267 | "font-face-format",
|
268 | "font-face-name",
|
269 | "font-face-src",
|
270 | "font-face-uri",
|
271 | "foreignObject",
|
272 | "g",
|
273 | "glyph",
|
274 | "glyphRef",
|
275 | "hatch",
|
276 | "hatchpath",
|
277 | "hkern",
|
278 | "image",
|
279 | "line",
|
280 | "linearGradient",
|
281 | "marker",
|
282 | "mask",
|
283 | "mesh",
|
284 | "meshgradient",
|
285 | "meshpatch",
|
286 | "meshrow",
|
287 | "metadata",
|
288 | "missing-glyph",
|
289 | "mpath",
|
290 | "path",
|
291 | "pattern",
|
292 | "polygon",
|
293 | "polyline",
|
294 | "radialGradient",
|
295 | "rect",
|
296 | "script",
|
297 | "set",
|
298 | "solidcolor",
|
299 | "stop",
|
300 | "style",
|
301 | "svg",
|
302 | "switch",
|
303 | "symbol",
|
304 | "text",
|
305 | "textPath",
|
306 | "title",
|
307 | "tref",
|
308 | "tspan",
|
309 | "unknown",
|
310 | "use",
|
311 | "view",
|
312 | "vkern",
|
313 | ],
|
314 | };
|
315 | if (document.createElementNS) for (var ns in nsNames) {
|
316 | for (var n = 0; n < nsNames[ns].length; n++) {
|
317 | add(document.createElementNS(ns, nsNames[ns][n]));
|
318 | }
|
319 | }
|
320 | var skips = [
|
321 | G.alert,
|
322 | G.back,
|
323 | G.blur,
|
324 | G.captureEvents,
|
325 | G.clearImmediate,
|
326 | G.clearInterval,
|
327 | G.clearTimeout,
|
328 | G.close,
|
329 | G.confirm,
|
330 | G.console,
|
331 | G.dump,
|
332 | G.fetch,
|
333 | G.find,
|
334 | G.focus,
|
335 | G.forward,
|
336 | G.getAttention,
|
337 | G.history,
|
338 | G.home,
|
339 | G.location,
|
340 | G.moveBy,
|
341 | G.moveTo,
|
342 | G.navigator,
|
343 | G.open,
|
344 | G.openDialog,
|
345 | G.print,
|
346 | G.process,
|
347 | G.prompt,
|
348 | G.resizeBy,
|
349 | G.resizeTo,
|
350 | G.setImmediate,
|
351 | G.setInterval,
|
352 | G.setTimeout,
|
353 | G.showModalDialog,
|
354 | G.sizeToContent,
|
355 | G.stop,
|
356 | ];
|
357 | var types = [];
|
358 | var interfaces = [
|
359 | "beforeunloadevent",
|
360 | "compositionevent",
|
361 | "customevent",
|
362 | "devicemotionevent",
|
363 | "deviceorientationevent",
|
364 | "dragevent",
|
365 | "event",
|
366 | "events",
|
367 | "focusevent",
|
368 | "hashchangeevent",
|
369 | "htmlevents",
|
370 | "keyboardevent",
|
371 | "messageevent",
|
372 | "mouseevent",
|
373 | "mouseevents",
|
374 | "storageevent",
|
375 | "svgevents",
|
376 | "textevent",
|
377 | "touchevent",
|
378 | "uievent",
|
379 | "uievents",
|
380 | ];
|
381 | var i = 0, full = false;
|
382 | var addEvent = document.createEvent ? function(type) {
|
383 | if (~indexOf(types, type)) return;
|
384 | types.push(type);
|
385 | for (var j = 0; j < interfaces.length; j++) try {
|
386 | var event = document.createEvent(interfaces[j]);
|
387 | event.initEvent(type, true, true);
|
388 | add(event);
|
389 | } catch (e) {}
|
390 | } : function() {};
|
391 | var scanProperties = Object.getOwnPropertyNames ? function(o, fn) {
|
392 | var names = Object.getOwnPropertyNames(o);
|
393 | names.forEach(fn);
|
394 | for (var k in o) if (!~indexOf(names, k)) fn(k);
|
395 | } : function(o, fn) {
|
396 | for (var k in o) fn(k);
|
397 | };
|
398 | setTimeout(function next() {
|
399 | for (var j = 10; --j >= 0 && i < objs.length; i++) {
|
400 | var o = objs[i];
|
401 | var skip = ~indexOf(skips, o);
|
402 | try {
|
403 | scanProperties(o, function(k) {
|
404 | if (!~indexOf(domprops, k)) domprops.push(k);
|
405 | if (/^on/.test(k)) addEvent(k.slice(2));
|
406 | if (!full) try {
|
407 | add(o[k]);
|
408 | } catch (e) {}
|
409 | });
|
410 | } catch (e) {}
|
411 | if (skip || full) continue;
|
412 | try {
|
413 | add(o.__proto__);
|
414 | } catch (e) {}
|
415 | try {
|
416 | add(o.prototype);
|
417 | } catch (e) {}
|
418 | try {
|
419 | add(new o());
|
420 | } catch (e) {}
|
421 | try {
|
422 | add(o());
|
423 | } catch (e) {}
|
424 | }
|
425 | if (!full && objs.length > 20000) {
|
426 | alert(objs.length);
|
427 | full = true;
|
428 | }
|
429 | if (i < objs.length) {
|
430 | setTimeout(next, 0);
|
431 | } else {
|
432 | document.write('<pre>[\n "' + domprops.sort().join('",\n "').replace(/&/g, "&").replace(/</g, "<") + '"\n]</pre>');
|
433 | }
|
434 | }, 0);
|
435 |
|
436 | function add(o) {
|
437 | if (o) switch (typeof o) {
|
438 | case "function":
|
439 | case "object":
|
440 | if (!~indexOf(objs, o)) objs.push(o);
|
441 | }
|
442 | }
|
443 |
|
444 | function indexOf(list, value) {
|
445 | var j = list.length;
|
446 | while (--j >= 0) {
|
447 | if (list[j] === value) break;
|
448 | }
|
449 | return j;
|
450 | }
|
451 | }(function() {
|
452 | return this;
|
453 | }());
|
454 | </script>
|
455 | </body>
|
456 | </html>
|