Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

149
Visualizações
Comparte una cita en Twitter

Estoy tratando de hacer un generador de citas de anime. Actualmente haciendo un botón que debería compartir la cita del generador a Twitter. Sin embargo, al presionar el botón, no comparte la cotización en Twitter.

Ayuda se agradece como solucionarlo.

 const api = "https://animechan.vercel.app/api/random"; const anime = document.getElementById("anime"); const quote = document.getElementById("quote"); const character = document.getElementById("character"); const btn = document.getElementById("btn"); document.getElementById("twitter") btn.addEventListener("click", getQuote); twitter.addEventListener("click", tweetQuote); function getQuote() { fetch(api) .then((res) => res.json()) .then((data) => { anime.innerHTML = `"${data.anime}"`; quote.innerHTML = `"${data.quote}"`; character.innerHTML = `- ${data.character}`; btn.classList.remove("loading"); btn.innerText = "New Quote"; }); } function tweetQuote() { window.open("https://twitter.com/intent/tweet?text="+$('data.quote')).text(); }
 <title>Anime Quote Generator 💬</title> </head> <body> <div class="container"> <div class="quote-box"> <h2 id="anime">Anime</h2> <br> <p id="quote">"Quote goes here..."</p> <small id="character">- Character</small> </div> <button id="btn">New Quote</button> <br> <button id="twitter">TWEET</button> </div> <script src="javascript.js"></script> </body> </html>

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Veo tres problemas:

  • Un corchete de cierre fuera de lugar, debe ir después de .text() en lugar de antes.
  • Un selector de jQuery incorrecto, debería ser $('#quote') en lugar de $('data.quote') . El objeto data solo existe dentro de la función fetch...then handler, también jQuery está diseñado para buscar objetos DOM, no busca ni usa variables en su código.
  • Los parámetros de URL deben estar codificados en URL, de lo contrario, el destinatario puede recibir datos incompletos y/o datos basura.

Código mejorado:

 function tweetQuote() { window.open("https://twitter.com/intent/tweet?text=" + encodeURIComponent($('#quote').text())); }

Puede probarlo en el fragmento de código a continuación (excepto que usé console.log porque window.open no funciona en un fragmento, puede copiar la URL en una nueva ventana del navegador y luego debería funcionar).

 const api = "https://animechan.vercel.app/api/random"; const anime = document.getElementById("anime"); const quote = document.getElementById("quote"); const character = document.getElementById("character"); const btn = document.getElementById("btn"); document.getElementById("twitter") btn.addEventListener("click", getQuote); twitter.addEventListener("click", tweetQuote); function getQuote() { fetch(api) .then((res) => res.json()) .then((data) => { anime.innerHTML = `"${data.anime}"`; quote.innerHTML = `"${data.quote}"`; character.innerHTML = `- ${data.character}`; btn.classList.remove("loading"); btn.innerText = "New Quote"; }); } function tweetQuote() { console.log("https://twitter.com/intent/tweet?text=" + encodeURIComponent($('#quote').text())); }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <title>Anime Quote Generator 💬</title> </head> <body> <div class="container"> <div class="quote-box"> <h2 id="anime">Anime</h2> <br> <p id="quote">"Quote goes here..."</p> <small id="character">- Character</small> </div> <button id="btn">New Quote</button> <br> <button id="twitter">TWEET</button> </div> <script src="javascript.js"></script> </body> </html>

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda