PageSourceSearch

https://deltaconnect.com.br/

html deltaconnect.com.br collected 2026-10-08 09:50:15 UTC 8,405 bytes, 246 lines download raw bytes

1
2<!doctype html>
3<html lang="pt-BR">
4	<head>
5		<meta charset="UTF-8" />
6		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7		<!-- Google Tag Manager -->
8		
8<script>
vendor: 335 bytes, lines 8-12
8(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
9		new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
10		j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
11		'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
12		})(window,document,'script','dataLayer','
12GTM-53PMKH3Q
vendor: 3 bytes, line 12
12');
12</script>
12
13		<!-- End Google Tag Manager -->
14		<link rel="icon" type="image/png" href="/assets/img/e407c738c19aa457fde45b0372f0e0fe.png" />
15		<meta name="generator" content="Hostinger Horizons" />
16		
17		<title>Delta Connect — Internet fibra óptica em Parnaíba-PI e no Maranhão</title>
18
19		<!-- ===== SEO e prévia de link — MELHORIA =============================
20		     O site hoje só cria estas tags depois que o React carrega, e o robô
21		     do WhatsApp e do Facebook não executa JavaScript: ele lê o HTML cru.
22		     Por isso o link colado no WhatsApp aparece sem título, sem descrição
23		     e sem imagem. Estando aqui, no HTML servido, a prévia passa a montar.
24		     ⚠️ og:image aponta de propósito para o CDN público — o robô externo
25		     não enxerga a intranet.                                            -->
26		<meta name="description" content="Internet de fibra óptica de até 1 Giga em Parnaíba, Cajueiro da Praia, Araioses, Água Doce e Santana do Maranhão. Planos a partir de R$ 89,99/mês, instalação e suporte local." />
27		<link rel="canonical" href="https://deltaconnect.com.br/" />
28		<meta property="og:type" content="website" />
29		<meta property="og:site_name" content="Delta Connect" />
30		<meta property="og:locale" content="pt_BR" />
31		<meta property="og:url" content="https://deltaconnect.com.br/" />
32		<meta property="og:title" content="Delta Connect — Internet fibra óptica em Parnaíba-PI e no Maranhão" />
33		<meta property="og:description" content="Fibra óptica de até 1 Giga a partir de R$ 89,99/mês. Parnaíba, Cajueiro da Praia, Araioses, Água Doce e Santana do Maranhão." />
34		<meta property="og:image" content="https://horizons-cdn.hostinger.com/e8fbb394-d63d-4a09-9f70-bb18d2509fa2/6ddedcf0515d83d27475d4ebe269c6da.png" />
35		<meta property="og:image:width" content="1600" />
36		<meta property="og:image:height" content="1067" />
37		<meta name="twitter:card" content="summary_large_image" />
38		<meta name="theme-color" content="#0095da" />
39		<!-- ================================================================= -->
40
41		
41<script type="module" crossorigin src="/assets/index-C1bzszNx.js?v=20260921d"></script>
41
42		<link rel="stylesheet" crossorigin href="/assets/index-D41OlxGh.css">
43		<link rel="stylesheet" href="/assets/melhorias.css?v=20260921d">
44		
44<script type="module">
45window.onerror = (message, source, lineno, colno, errorObj) => {
46	const errorDetails = errorObj ? JSON.stringify({
47		name: errorObj.name,
48		message: errorObj.message,
49		stack: errorObj.stack,
50		source,
51		lineno,
52		colno,
53	}) : null;
54
55	window.parent.postMessage({
56		type: 'horizons-runtime-error',
57		message,
58		error: errorDetails
59	}, '*');
60};
61</script>
61
62		
62<script type="module">
63const observer = new MutationObserver((mutations) => {
64	for (const mutation of mutations) {
65		for (const addedNode of mutation.addedNodes) {
66			if (
67				addedNode.nodeType === Node.ELEMENT_NODE &&
68				(
69					addedNode.tagName?.toLowerCase() === 'vite-error-overlay' ||
70					addedNode.classList?.contains('backdrop')
71				)
72			) {
73				handleViteOverlay(addedNode);
74			}
75		}
76	}
77});
78
79observer.observe(document.documentElement, {
80	childList: true,
81	subtree: true
82});
83
84function handleViteOverlay(node) {
85	if (!node.shadowRoot) {
86		return;
87	}
88
89	const backdrop = node.shadowRoot.querySelector('.backdrop');
90
91	if (backdrop) {
92		const overlayHtml = backdrop.outerHTML;
93		const parser = new DOMParser();
94		const doc = parser.parseFromString(overlayHtml, 'text/html');
95		const messageBodyElement = doc.querySelector('.message-body');
96		const fileElement = doc.querySelector('.file');
97		const messageText = messageBodyElement ? messageBodyElement.textContent.trim() : '';
98		const fileText = fileElement ? fileElement.textContent.trim() : '';
99		const error = messageText + (fileText ? ' File:' + fileText : '');
100
101		window.parent.postMessage({
102			type: 'horizons-vite-error',
103			error,
104		}, '*');
105	}
106}
107</script>
107
108		
108<script type="module">
109const originalConsoleError = console.error;
110const MATCH_LINE_COL_REGEX = /:(\d+):(\d+)\)?\s*$/; // regex to match the :lineNum:colNum
111const MATCH_AT_REGEX = /^\s*at\s+(?:async\s+)?(?:.*?\s+)?\(?/; // regex to remove the 'at' keyword and any 'async' or function name
112const MATCH_PATH_REGEX = /^\//; // regex to remove the leading slash
113
114function parseStackFrameLine(line) {
115	const lineColMatch = line.match(MATCH_LINE_COL_REGEX);
116	if (!lineColMatch) return null;
117	const [, lineNum, colNum] = lineColMatch;
118	const suffix = `:${lineNum}:${colNum}`;
119	const idx = line.lastIndexOf(suffix);
120	if (idx === -1) return null;
121	const before = line.substring(0, idx);
122	const path = before.replace(MATCH_AT_REGEX, '').trim();
123	if (!path) return null;
124
125	try {
126		const pathname = new URL(path).pathname;
127		const filePath = pathname.replace(MATCH_PATH_REGEX, '') || pathname;
128		return `${filePath}:${lineNum}:${colNum}`;
129	} catch (e) {
130		const filePath = path.replace(MATCH_PATH_REGEX, '') || path;
131		return `${filePath}:${lineNum}:${colNum}`;
132	}
133}
134
135function getFilePathFromStack(stack, skipFrames = 0) {
136	if (!stack || typeof stack !== 'string') return null;
137	const lines = stack.split('\n').slice(1);
138
139	const frames = lines.map(line => parseStackFrameLine(line.replace(/\r$/, ''))).filter(Boolean);
140
141	return frames[skipFrames] ?? null;
142}
143
144console.error = function(...args) {
145	originalConsoleError.apply(console, args);
146
147	let errorString = '';
148	let filePath = null;
149
150	for (let i = 0; i < args.length; i++) {
151		const arg = args[i];
152		if (arg instanceof Error) {
153			filePath = getFilePathFromStack(arg.stack, 0);
154			errorString = `${arg.name}: ${arg.message}`;
155			if (filePath) {
156				errorString = `${errorString} at ${filePath}`;
157			}
158			break;
159		}
160	}
161
162	if (!errorString) {
163		errorString = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg) : String(arg)).join(' ');
164		const stack = new Error().stack;
165		filePath = getFilePathFromStack(stack, 1);
166		if (filePath) {
167			errorString = `${errorString} at ${filePath}`;
168		}
169	}
170
171	window.parent.postMessage({
172		type: 'horizons-console-error',
173		error: errorString
174	}, '*');
175};
176</script>
176
177		
177<script type="module">
178const originalFetch = window.fetch;
179
180window.fetch = function(...args) {
181	const url = args[0] instanceof Request ? args[0].url : args[0];
182
183	// Skip WebSocket URLs
184	if (url.startsWith('ws:') || url.startsWith('wss:')) {
185		return originalFetch.apply(this, args);
186	}
187
188	return originalFetch.apply(this, args)
189		.then(async response => {
190			const contentType = response.headers.get('Content-Type') || '';
191
192			// Exclude HTML document responses
193			const isDocumentResponse =
194				contentType.includes('text/html') ||
195				contentType.includes('application/xhtml+xml');
196
197			if (!response.ok && !isDocumentResponse) {
198					const responseClone = response.clone();
199					const errorFromRes = await responseClone.text();
200					const requestUrl = response.url;
201					console.error(`Fetch error from ${requestUrl}: ${errorFromRes}`);
202			}
203
204			return response;
205		})
206		.catch(error => {
207			if (!url.match(/.html?$/i)) {
208				console.error(error);
209			}
210
211			throw error;
212		});
213};
214</script>
214
215		
215<script type="module">
216if (window.navigation && window.self !== window.top) {
217	window.navigation.addEventListener('navigate', (event) => {
218		const url = event.destination.url;
219
220		try {
221			const destinationUrl = new URL(url);
222			const destinationOrigin = destinationUrl.origin;
223			const currentOrigin = window.location.origin;
224
225			if (destinationOrigin === currentOrigin) {
226				return;
227			}
228		} catch (error) {
229			return;
230		}
231
232		window.parent.postMessage({
233			type: 'horizons-navigation-error',
234			url,
235		}, '*');
236	});
237}
238</script>
238
239	</head>
240	<body>
vendor: 70 bytes, lines 240-241
240
241		<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
241GTM-53PMKH3Q
vendor: 87 bytes, lines 241-243
241"
242		height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
243		
243<div id="root"></div>
244		
244<script src="/assets/melhorias.js?v=20260921d"></script>
244
245	</body>
246</html>

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.