Pulsar botón automáticamente

publicado por: Anonymous

Tengo un script de JS que manda un mensaje aprovechando la API de WhatsApp proporcionada por la web.

Pregunta el mensaje a enviar y conecta con api.whatsapp.com/send?phone.

function initPagina(){
    var texto = prompt("Mensaje a enviar", "");
    if(texto==""){
        alert("Por favor introduzca un mensaje a enviar.");
        initPagina();
    }
    else{
        var telef = "[numeroaenviar]";
        window.open("https://api.whatsapp.com/send?phone="+telef+"&text="+texto+"","_self");
    }
}

Me gustaría hacer que en cuanto se conecte, espere unos 5 min, y pulse el boton que hay en esa pagina con el id: action-button.

He encontrado este código pero no sirve, ya que por lo que he leido, sirve solo para botones de tu propio programa o página.

$(document).ready(function(){
        // indicamos que se ejecuta la funcion a los 5 segundos de haberse
        // cargado la pagina
        setTimeout(clickbutton,5000);
        function clickbutton(){
            // simulamos el click del mouse en el boton del formulario
            $("#action-button").click();
            alert("Aqui llega");  //Debugger
        }
 });

Al alert no llega tampoco.

¿Se podría hacer lo que estoy pidiendo?,¿o es imposible?

PD: Vengo de programar en C++, Java, Swift etc. De web, pocas nociones, algun consejo para mi? sobretodo JQuery y AJAX como trabajan con PHP.

Un saludo y gracias de antemano!

solución

El problema es que el objeto document que estás usando es el de la ventana actual. Si quieres trabajar sobre una ventana hija tendrías que hacer algo como:

let hija=window.open(...);

Y entonces acceder al documento de la ventana hija:

$(hija.document).ready(function() {
  // indicamos que se ejecuta la funcion a los 5 segundos de haberse
  // cargado la pagina


  function clickbutton() {
    // simulamos el click del mouse en el boton del formulario
    $("#action-button").click();
  }
  $('#action-button').on('click',function() {
    console.log('action button clicked');
  });

  setTimeout(clickbutton, 5000);
});
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *