Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

143
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda