62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<html>
 | 
						|
  <head>
 | 
						|
  </head>
 | 
						|
  <body>
 | 
						|
    <script>(function(){
 | 
						|
      var props = {};
 | 
						|
 | 
						|
      function addObject(obj) {
 | 
						|
        if (obj == null) return;
 | 
						|
        try {
 | 
						|
          Object.getOwnPropertyNames(obj).forEach(add);
 | 
						|
        } catch(ex) {}
 | 
						|
        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]);
 | 
						|
      });
 | 
						|
 | 
						|
      try {
 | 
						|
        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"));
 | 
						|
      } catch(ex) {}
 | 
						|
 | 
						|
      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"); -->
 | 
						|
      ta.value = JSON.stringify({
 | 
						|
        vars: [],
 | 
						|
        props: Object.keys(props).sort(cmp)
 | 
						|
      }, null, 2);
 | 
						|
      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>
 |