You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
456 lines
13 KiB
456 lines
13 KiB
<!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>
|
|
|