PageSourceSearch

https://www.sgi-network.org/js/saveDivAsPng.js

js sgi-network.org collected 2026-10-02 02:55:39 UTC 5,017 bytes, 166 lines download raw bytes

1(function() {
2
3	var doctype = '';
4
5	function inlineImagesDiv(callback) {
6
7		var images = document.querySelectorAll('svg image');
8		var left = images.length;
9		if(left == 0){ callback(); }
10
11		for(var i = 0; i < images.length; i++) {
12			var image = images[i];
13			var canvas = document.createElement('canvas');
14			var ctx = canvas.getContext('2d');
15			var img = new Image();
16			img.src = image.getAttribute('xlink:href');
17
18			img.onload = function() {
19				canvas.width = img.width;
20				canvas.height = img.height;
21				ctx.drawImage(img, 0, 0);
22				image.setAttribute('xlink:href', canvas.toDataURL('image/png'));
23				left--;
24				if (left == 0){ callback(); }
25			}
26
27		}
28
29	}
30
31	window.saveDivAsPng = function(el, name, scaleFactor, titl, sour, view, head){
32
33		scaleFactor = scaleFactor || 1;
34
35		inlineImagesDiv(function(left) {
36
37			var outer = document.createElement("div");
38			var clone = el.cloneNode(true);
39
40			// SET CSS
41			if(view == "thematic_time"){
42				var margin_left = clone.getElementsByClassName('marg_3')[0];
43				margin_left.setAttribute("style", "width:50px;");
44				var margin_left = clone.getElementsByClassName('marg_3')[1];
45				margin_left.setAttribute("style", "width:50px;");
46			}
47			else if(view == "survey_structure"){
48				var margin_left = clone.getElementsByClassName('marg_1')[0];
49				margin_left.setAttribute("style", "width:130px;");
50				var margin_left = clone.getElementsByClassName('marg_1')[1];
51				margin_left.setAttribute("style", "width:130px;");
52
53				var class_subline = clone.getElementsByClassName('subline')[0];
54				class_subline.setAttribute("style", "font-family:'sgi-reg',sans-serif;");
55				var class_subline = clone.getElementsByClassName('subline')[1];
56				class_subline.setAttribute("style", "font-family:'sgi-reg',sans-serif;");
57				
58				var tag_h3 = clone.getElementsByTagName('h3');
59				for(var i = 0; i< tag_h3.length; i++){
60					tag_h3[i].setAttribute("style", "font-family:'sgi-reg',sans-serif;");
61				}
62
63				clone.setAttribute("style", "margin-bottom:0px;");
64			}
65
66			// SET HEADER
67			var header = document.createElement("div");
68			header.setAttribute("class", "D3_title_22 D3_color_blk");
69			header.setAttribute("style", "margin-left:5px; margin-top:15px; margin-bottom:20px;");
70			header.innerHTML = head;
71			clone.insertBefore(header, clone.firstChild);
72
73			// SET TITLE
74			var title = document.createElement("div");
75			title.setAttribute("class", "D3_title_13 D3_color_grey_7");
76			title.setAttribute("style", "float:left; margin-left:5px; margin-top:10px;");
77			title.innerHTML = titl;
78			clone.appendChild(title);
79
80			// SET SOURCE
81			var source = document.createElement("div");
82			source.setAttribute("class", "D3_title_13 D3_color_grey_7");
83			source.setAttribute("align", "right");
84			source.setAttribute("style", "margin-right:10px; margin-top:10px;");
85			source.innerHTML = sour;
86			clone.appendChild(source);
87
88			outer.appendChild(clone);
89
90			// REPLACE MASK ABSOLUTE URL
91			//var re = /http:\/\/127.0.0.1\/~mapspace\/SGI\/MapSpaceImac\/SGI-NETWORK-2024\/export.php/gi;
92			var WWW = document.URL.split("#");
93			var re = WWW[0].replace(/\//g, "\\\/");
94			var str = outer.innerHTML;
95			var newstr = str.replace(new RegExp(re,"gi"), "");
96
97			outer.innerHTML = newstr;
98
99
100//			EXPORT VIA PHANTOMJS
101
102			if(document.getElementById('export_div')){
103
104				document.getElementById('export_data').value = newstr;
105				document['export_div'].submit();
106
107			}
108			else{
109
110				var form = document.createElement("form");
111				form.setAttribute("action", "export/saveDivAsPng.php");
112				form.setAttribute("name", "export_div");
113				form.setAttribute("id", "export_div");
114				form.setAttribute("method", "post");
115				form.setAttribute("target", "_blank");
116
117				var target = document.getElementById('wrap');
118				target.appendChild(form);
119
120				var input = document.createElement("input");
121				input.setAttribute("type", "hidden");
122				input.setAttribute("name", "file");
123				input.setAttribute("value", name);
124
125				var target = document.getElementById('export_div');
126				target.appendChild(input);
127
128				var input = document.createElement("input");
129				input.setAttribute("type", "hidden");
130				input.setAttribute("id", "export_data");
131				input.setAttribute("name", "data");
132				input.setAttribute("value", newstr);
133
134				var target = document.getElementById('export_div');
135				target.appendChild(input);
136
137				document['export_div'].submit();
138
139			}
140/*
141//			EXPORT VIA CLIENT (WORKS FIREFOX AND CROME ONLY)
142
143			var svg = doctype + outer.innerHTML;
144
145			var image = new Image();
146			image.src = 'data:image/svg+xml;base64,' + window.btoa(unescape(encodeURIComponent(svg)));
147			image.onload = function(){
148
149				var canvas = document.createElement('canvas');
150				canvas.width = image.width;
151				canvas.height = image.height;
152				var context = canvas.getContext('2d');
153				context.drawImage(image, 0, 0);
154
155				var a = document.createElement('a');
156				a.download = name + ".png";
157				a.href = canvas.toDataURL('image/png');
158				document.body.appendChild(a);
159				a.click();
160			}
161
162*/
163
164		});
165	}
166})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.