Advertisement
MizunoBrasil

Salvar Links: Gera link com target blank e salva lista em arquivo html

Dec 2nd, 2023 (edited)
863
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="pt-br">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="author" content="Mizuno Call of Duty">  
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.     <title>Salva lista de Links Web e gera lista HTML</title>
  8.     <style>
  9.         body {
  10.             font-family: Arial, sans-serif;
  11.             margin: 20px;
  12.         }
  13.  
  14.         h2 {
  15.             color: #333;
  16.         }
  17.  
  18.         label {
  19.             display: block;
  20.             margin-bottom: 5px;
  21.         }
  22.  
  23.         input {
  24.             width: 600px; /* Ajuste o tamanho conforme desejado */
  25.             padding: 5px;
  26.             margin-bottom: 10px;
  27.         }
  28.  
  29.         button {
  30.             padding: 8px;
  31.             background-color: #007bff;
  32.             color: #fff;
  33.             border: none;
  34.             cursor: pointer;
  35.         }
  36.  
  37.         button:hover {
  38.             background-color: #0056b3;
  39.         }
  40.  
  41.         #linksContainer {
  42.             margin-top: 20px;
  43.         }
  44.  
  45.         a {
  46.             color: #007bff;
  47.             text-decoration: none;
  48.         }
  49.  
  50.         a:hover {
  51.             text-decoration: underline;
  52.         }
  53.  
  54.         footer {
  55.             margin-top: 20px;
  56.             font-style: italic;
  57.             color: #666;
  58.         }
  59.     </style>
  60. </head>
  61. <body>
  62.     <h2>Salva lista de Links Web e gera lista HTML</h2>
  63.     <label for="urlInput">Informe a URL:</label>
  64.     <input type="text" id="urlInput">
  65.     <button onclick="gerarLink()">Gerar Link</button>
  66.     <button onclick="gerarHTML()">Salvar lista de links</button>
  67.  
  68.     <ul id="linksContainer"></ul>
  69.  
  70.     <footer><a href="https://www.maislegal.com.br">Voltar</a></footer>
  71.  
  72.     <script>
  73.         var links = [];
  74.  
  75.         function obterTitulo(url, callback) {
  76.             var proxyUrl = 'https://api.codetabs.com/v1/proxy?quest=';
  77.             var xhr = new XMLHttpRequest();
  78.             xhr.onreadystatechange = function() {
  79.                 if (xhr.readyState === 4 && xhr.status === 200) {
  80.                     var match = xhr.responseText.match(/<title>(.*?)<\/title>/);
  81.                     var titulo = match ? match[1] : "Título não encontrado";
  82.                     callback(titulo);
  83.                 }
  84.             };
  85.             xhr.open("GET", proxyUrl + url, true);
  86.             xhr.send();
  87.         }
  88.  
  89.         function obterDataHoraFormatada() {
  90.             var agora = new Date();
  91.             var dataFormatada =
  92.                 `${agora.getFullYear()}-${zeroAEsquerda(agora.getMonth() + 1)}-${zeroAEsquerda(agora.getDate())}` +
  93.                 ` ${zeroAEsquerda(agora.getHours())}:${zeroAEsquerda(agora.getMinutes())}:${zeroAEsquerda(agora.getSeconds())}`;
  94.  
  95.             return dataFormatada;
  96.         }
  97.  
  98.         function gerarLink() {
  99.             // Obtém o valor do input
  100.             var url = document.getElementById("urlInput").value.trim();
  101.  
  102.             // Verifica se a URL não está vazia
  103.             if (url !== "") {
  104.                 // Obtém o título da página
  105.                 obterTitulo(url, function(titulo) {
  106.                     // Adiciona o link ao array
  107.                     links.push({ url: url, titulo: titulo });
  108.  
  109.                     // Adiciona o link à lista
  110.                     var lista = document.getElementById("linksContainer");
  111.                     var itemLista = document.createElement("li");
  112.                     var linkElement = document.createElement("a");
  113.  
  114.                     // Define os atributos do link
  115.                     linkElement.href = url;
  116.                     linkElement.target = "_blank";
  117.                     linkElement.textContent = titulo;
  118.  
  119.                     // Adiciona o link ao item da lista
  120.                     itemLista.appendChild(linkElement);
  121.                     lista.appendChild(itemLista);
  122.  
  123.                     // Limpa o valor do input
  124.                     document.getElementById("urlInput").value = "";
  125.                 });
  126.             }
  127.         }
  128.  
  129.         function gerarHTML() {
  130.             // Cria um conteúdo HTML com os links e o título
  131.             var conteudoHTML = `
  132.                 <html>
  133.                 <head>
  134.                     <title>Links Gerados em ${obterDataHoraFormatada()}</title>
  135.                     <style>
  136.                         body {
  137.                             font-family: Arial, sans-serif;
  138.                         }
  139.  
  140.                         a {
  141.                             color: #007bff;
  142.                             text-decoration: none;
  143.                         }
  144.  
  145.                         a:hover {
  146.                             text-decoration: underline;
  147.                         }
  148.  
  149.                         footer {
  150.                             margin-top: 20px;
  151.                             font-style: italic;
  152.                             color: #666;
  153.                         }
  154.                     </style>
  155.                 </head>
  156.                 <body>
  157.                     <h1>Links Exportados em ${obterDataHoraFormatada()}</h1>
  158.                     <ul>
  159.             `;
  160.             for (var i = 0; i < links.length; i++) {
  161.                 conteudoHTML += `<li><a href="${links[i].url}" target="_blank">${links[i].titulo}</a></li>`;
  162.             }
  163.             conteudoHTML += `
  164.                     </ul>
  165.                     <footer><a href="https://www.maislegal.com.br" target="_blank">maislegal.com.br</a></footer>
  166.                 </body>
  167.                 </html>
  168.             `;
  169.  
  170.             // Cria um Blob com o conteúdo HTML
  171.             var blob = new Blob([conteudoHTML], { type: "text/html" });
  172.  
  173.             // Cria um objeto URL para o Blob
  174.             var url = URL.createObjectURL(blob);
  175.  
  176.             // Gera um nome de arquivo organizado
  177.             var agora = new Date();
  178.             var nomeArquivo =
  179.                 `links_${agora.getFullYear()}-${zeroAEsquerda(agora.getMonth() + 1)}-${zeroAEsquerda(agora.getDate())}` +
  180.                 `_${zeroAEsquerda(agora.getHours())}-${zeroAEsquerda(agora.getMinutes())}.html`;
  181.  
  182.             // Cria um elemento de link para fazer o download
  183.             var linkDownload = document.createElement("a");
  184.             linkDownload.href = url;
  185.             linkDownload.download = nomeArquivo;
  186.             document.body.appendChild(linkDownload);
  187.  
  188.             // Aciona o clique no link de download
  189.             linkDownload.click();
  190.  
  191.             // Remove o link de download do corpo
  192.             document.body.removeChild(linkDownload);
  193.  
  194.             // Limpa o array de links
  195.             links = [];
  196.         }
  197.  
  198.         function zeroAEsquerda(numero) {
  199.             return numero.toString().padStart(2, '0');
  200.         }
  201.     </script>
  202. </body>
  203. </html>
  204.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement