1define(function (){ 2 return { 3 verficaDestinoLink: function () { 4 // Função para verificar se o DOM está carregado 5 function onDocumentReady(callback) { 6 // console.log('Teste onDocumentReady'); 7 if (document.readyState === 'complete' || document.readyState === 'interactive') { 8 // Se o DOM já está pronto, executa o callback 9 // console.log('Entrou no if onDocumentReady'); 10 callback(); 11 } else { 12 // console.log('Entrou no else onDocumentReady'); 13 // Caso contrário, espera pelo evento 'DOMContentLoaded' 14 document.addEventListener('DOMContentLoaded', callback); 15 } 16 } 17 18 // Agora chama a função onDocumentReady passando o seu código de manipulação do DOM 19 onDocumentReady(function () { 20 // Seleciona todos os links na página 21 // console.log('Entrou na função do onDocumentReady'); 22 const links = document.querySelectorAll('a'); 23 // console.log(links); 24 // Adiciona um event listener de clique para cada link 25 links.forEach(link => { 26 // console.log('Teste de verificação do link'); 27 // console.log(link); 28 // console.log(link.href); 29 link.addEventListener('click', function (event) { 30 const popup = document.querySelector('[data-pop-up]'); 31 if (!popup){ 32 return; 33 } 34 // Previne a navegação automática para o link externo 35 // event.preventDefault(); 36 // console.log(link.href); 37 // const targetUrl = new URL(link.href); 38 try{ 39 const targetUrl = new URL(link.href); 40 const popUpGeral = document.querySelector('[data-set-pop-up-geral]'); 41 const dominios = document.querySelector('[data-dominios]').value.split(';'); 42 let foraDominio = true; 43 // console.log(targetUrl); 44 // Adiciona evento aos botões. 45 const concorda = document.querySelector('[data-pop-up-concorda]'); 46 concorda.addEventListener('click', function(){ 47 popUpGeral.classList.toggle('oculta-elemento'); 48 window.location.href = targetUrl.href; 49 }) 50 const discorda = document.querySelector('[data-pop-up-discorda]'); 51 discorda.addEventListener('click', function (){ 52 popUpGeral.classList.add('oculta-elemento'); 53 }) 54 // Testa se o link está dentro dos domÃnios permitidos 55 for (i=0; i < dominios.length; i++){ 56 if (targetUrl.hostname.indexOf(dominios[i]) >= 0){ 57 foraDominio = false; 58 } 59 } 60 // return; 61 if (foraDominio) { 62 event.preventDefault(); 63 // Exibe uma mensagem de alerta ou faça outra ação desejada e trava a tela 64 popUpGeral.classList.toggle('oculta-elemento'); 65 } // else { 66 // window.location.href = targetUrl.href; 67 //} 68 } catch (e) { 69 // console.log('Entrou no erro'); 70 // console.log(e); 71 return; 72 } 73 74 }); 75 }); 76 }); 77 } 78 } 79});
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.