12
12
// @grant GM_notification
13
13
// @grant GM_openInTab
14
14
// @grant GM_xmlhttpRequest
15
+ // @grant GM_setValue
16
+ // @grant GM_getValue
15
17
// @connect *
16
18
// @noframes
17
19
// @require https://cdn.rawgit.com/coolaj86/TextEncoderLite/v1.0.0/index.js
18
20
// @require https://cdn.rawgit.com/beatgammit/base64-js/v1.1.2/base64js.min.js
19
21
// @downloadURL https://raw.githubusercontent.com/AlorelUserscripts/data-url-generator/master/data-url.user.js
20
22
// @updateURL https://raw.githubusercontent.com/AlorelUserscripts/data-url-generator/master/data-url.meta.js
21
- // @icon https://cdn.rawgit.com/AlorelUserscripts/data-url-generator/0.1/ico.png
23
+
24
+ // @icon https://cdn.rawgit.com/AlorelUserscripts/data-url-generator/develop/assets/ico.png
22
25
// @license LGPL-2.1
23
26
// ==/UserScript==
24
27
110
113
111
114
for ( ; i < pageElements . length ; i ++ ) {
112
115
if ( pageElements [ i ] instanceof HTMLImageElement ) {
113
- ret . push ( pageElements [ i ] . src ) ;
116
+ ret . push ( {
117
+ url : pageElements [ i ] . src ,
118
+ element : pageElements [ i ]
119
+ } ) ;
114
120
} else {
115
121
for ( j = 0 ; j < pseudos . length ; j ++ ) {
116
122
if (
117
123
( bgImg = getComputedStyle ( pageElements [ i ] , pseudos [ j ] ) . backgroundImage ) !== BG_IMG_NONE &&
118
124
( bgImg = bgImg . match ( bgImgRegex ) )
119
125
) {
120
126
for ( k = 0 ; k < bgImg . length ; k ++ ) {
121
- ret . push ( bgImg [ k ] . replace ( bgImgRegex , "$1" ) ) ;
127
+ ret . push ( {
128
+ url : bgImg [ k ] . replace ( bgImgRegex , "$1" ) ,
129
+ element : pageElements [ i ]
130
+ } ) ;
122
131
}
123
132
}
124
133
}
125
134
}
126
135
}
127
136
128
137
//Begin generating our DOM
129
- var html = document . createElement ( "html" ) ,
130
- head = document . createElement ( "head" )
138
+ var body = document . createElement ( "body" ) ,
139
+ table = document . createElement ( "table" ) ,
140
+ thead = document . createElement ( "thead" ) ,
141
+ tfoot = document . createElement ( "tfoot" ) ,
142
+ tbody = document . createElement ( "tbody" ) ,
143
+ tr , preview , selector ;
144
+
145
+ table . style . width = "100%" ;
146
+ table . style . borderCollapse = "collapse" ;
147
+ thead . innerHTML = '<tr>\
148
+ <th style="border:1px solid black">Preview</th>\
149
+ <th style="border:1px solid black">Rough selector</th>\
150
+ </tr>' ;
151
+ tfoot . innerHTML = thead . innerHTML ;
152
+
153
+ ret . forEach ( function ( r ) {
154
+ tr = document . createElement ( "tr" ) ;
155
+ preview = document . createElement ( "td" ) ;
156
+ selector = document . createElement ( "td" ) ;
157
+
158
+ selector . style . whiteSpace = "nowrap" ;
159
+ tr . style . border = preview . style . border = selector . style . border = "1px solid black" ;
160
+
161
+ preview . innerHTML = '<img src="' + r . url + '" style="max-width:100%;height:auto"/>' ;
162
+ selector . innerText = 'To be implemented' ;
163
+
164
+ tr . appendChild ( preview ) ;
165
+ tr . appendChild ( selector ) ;
166
+ tbody . appendChild ( tr ) ;
167
+ } ) ;
168
+
169
+ table . appendChild ( thead ) ;
170
+ table . appendChild ( tbody ) ;
171
+ table . appendChild ( tfoot ) ;
172
+ body . appendChild ( table ) ;
173
+
174
+ var a = document . createElement ( "a" ) ,
175
+ event = document . createEvent ( 'HTMLEvents' ) ;
176
+ event . initEvent ( 'click' , true , false ) ;
177
+ a . href = "data:text/html;base64," + base64js . fromByteArray ( encoder . encode ( body . outerHTML ) ) ;
178
+ a . target = "_blank" ;
179
+ a . style . display = "none" ;
180
+ document . body . appendChild ( a ) ;
181
+ a . dispatchEvent ( event ) ;
182
+ a . parentNode . removeChild ( a ) ;
131
183
} , "s" ) ;
132
184
}
133
185
} ) ( GM_notification ) ;
0 commit comments