diff options
-rw-r--r-- | tools/props.html | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tools/props.html b/tools/props.html new file mode 100644 index 00000000..23d1f7da --- /dev/null +++ b/tools/props.html @@ -0,0 +1,53 @@ +<html> + <head> + </head> + <body> + <script>(function(){ + var props = Object.create(null); + + function addObject(obj) { + if (obj == null) return; + Object.getOwnPropertyNames(obj).forEach(add); + if (obj.prototype) { + Object.getOwnPropertyNames(obj.prototype).forEach(add); + } + if (typeof obj == "function") { + try { + Object.getOwnPropertyNames(new obj).forEach(add); + } catch(ex) {} + } + } + + function add(name) { + props[name] = true; + } + + Object.getOwnPropertyNames(window).forEach(function(thing){ + addObject(window[thing]); + }); + + addObject(new Event("click")); + addObject(new Event("contextmenu")); + addObject(new Event("mouseup")); + addObject(new Event("mousedown")); + addObject(new Event("keydown")); + addObject(new Event("keypress")); + addObject(new Event("keyup")); + + var ta = document.createElement("textarea"); + ta.style.width = "100%"; + ta.style.height = "20em"; + ta.style.boxSizing = "border-box"; + ta.value = Object.keys(props).sort(cmp).map(function(name){ + return JSON.stringify(name); + }).join(",\n"); + document.body.appendChild(ta); + + function cmp(a, b) { + a = a.toLowerCase(); + b = b.toLowerCase(); + return a < b ? -1 : a > b ? 1 : 0; + } + })();</script> + </body> +</html> |