diff options
author | Mihai Bazon <mihai.bazon@gmail.com> | 2015-03-17 11:46:04 +0200 |
---|---|---|
committer | Mihai Bazon <mihai.bazon@gmail.com> | 2015-03-17 11:46:04 +0200 |
commit | f5eeed7665041145beea2fdfa7f90c2ac559d312 (patch) | |
tree | 559606dbec7d03ed2ff6d1f78ab5d87832e22b88 /tools | |
parent | 80cfd063e20e6779fc03da20cd53e6d05df8a181 (diff) | |
download | tracifyjs-f5eeed7665041145beea2fdfa7f90c2ac559d312.tar.gz tracifyjs-f5eeed7665041145beea2fdfa7f90c2ac559d312.zip |
Add tool to list DOM properties/methods
Diffstat (limited to 'tools')
-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> |