inject.js
[app.wkmirror] / inject.js
1 //file which parses document body
2
3 // is prototype insane?
4 try {
5     delete Array.prototype.toJSON;
6     delete Object.prototype.toJSON;
7
8     delete Hash.prototype.toJSON;
9     delete String.prototype.toJSON;
10 } catch (e) {
11     
12 }
13
14 BrowserMirror = {
15     gatherlinks : function () { 
16         var urls= [];
17         for (var i= document.links.length; i-->0;){
18             urls.push( {
19                 href: document.links[i].href,
20                 label : document.links[i].textContent
21             });
22             
23         }
24         console.log(JSON.stringify( {
25             requesturl : document.location.href, // buggy - we should return the requested path.
26             method: 'gatherlinks' ,
27             data : urls
28         }));
29           
30         //return urls;
31         
32     },
33     downloadhead : function (url) {
34         var xmlhttp = new XMLHttpRequest();
35                     
36         
37         xmlhttp.open("HEAD", url,true);
38         xmlhttp.onreadystatechange=function() {
39             if (xmlhttp.readyState==4) {
40                 console.log(
41                     JSON.stringify ({
42                         requesturl : url,
43                         method: 'downloadhead',
44                         headers : xmlhttp.getAllResponseHeaders(),
45                         contentType:xmlhttp.getResponseHeader("Content-Type"),
46                         data:''
47                     }));
48             }
49         }
50         
51         xmlhttp.send(null);
52            
53     },
54
55     downloadpage : function (url) {
56         
57        
58         var xmlhttp = new XMLHttpRequest();
59                     
60         xmlhttp.responseType = 'arraybuffer';
61         xmlhttp.open("GET", url,true);
62         xmlhttp.onreadystatechange=function() {
63             if (xmlhttp.readyState==4) {
64                 var ar= [];
65                 console.log('creating byte array?');
66                 var r = new Uint8Array(xmlhttp.response);
67                 for (i=0;i<r.byteLength;i++) {
68                     ar.push(r[i]);
69                 }
70                 console.log('got array..');
71                 console.log(
72                     JSON.stringify ({
73                         requesturl : url,
74                         method: 'downloadpage',
75                         headers : xmlhttp.getAllResponseHeaders(),
76                         contentType:xmlhttp.getResponseHeader("Content-Type"),
77                         data: ar
78                     }));
79             }
80         }
81         
82         xmlhttp.send(null);
83            
84     }
85     
86 }
87
88         
89
90
91
92 //downloadpage();
93 //gatherlinks();