Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

247
Views
¿Cómo pasar parámetros bajo la función de carga?
<body onload="startTime('<%= time %>')"> </body> <script> setTimeout(function startTime(time) { alert(time); }, 1000) </script>

He devuelto el "tiempo" del lado del cliente mediante la entrada de otra página. Luego, el "startTime()" se llamará cada segundo, en el que se le dará el parámetro "tiempo" a la función.

¿Cómo puedo pasar la variable "tiempo" en el <script> cada segundo en la función de carga?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Para ejecutarlo cada segundo, debe usar setInterval en lugar de setTimeout .

Debe introducir su startTime fuera de setInterval .

Su '<%= time %>' no debería ser una cadena también, debería ser así <body onload="startTime(<%= time %>)"> .

 <body onload="startTime(1000)"> </body> <script> function startTime(time) { setInterval(function() { alert(time); }, time) } </script>

Si el time es una cadena, debe analizar su tiempo en un número.

 <body onload="startTime('1000')"> </body> <script> function startTime(time) { setInterval(function() { alert(time); }, Number(time)) //parse time string to a number } </script>

about 4 years ago · Juan Pablo Isaza Report

0

Aunque su pregunta no es muy clara, tal vez pueda usar $('document').ready(function(){}); dentro de su script si usa jQuery. Además, si no desea utilizar jQuery, otro enfoque podría ser una función anónima autoejecutable como esta

 <script> (function(time) { //this function will we invoked immediately console.log(time); })("Pass params here"); </script>
about 4 years ago · Juan Pablo Isaza Report

0

setTimeout ejecutará la función después de que se haya agotado el temporizador (en su caso, 1000 ms). Si desea que se ejecute continuamente cada N segundos, debe usar setInterval en su lugar.

MDN: https://developer.mozilla.org/en-US/docs/Web/API/setInterval

Puede pasar argumentos a la función de devolución de llamada pasando un tercer (o más) argumento a setInterval. Pero no se actualizará, debe crear su propio código a su alrededor, para obtener el valor actualizado.

Lo que tienes en tu código ahora mismo no funcionará. No llama a la función de devolución de llamada directamente. setTimeout comienza inmediatamente después de que se carga la página. Su función startTime es anónima y es esencialmente esto:

 setTimeout((time) => { alert(time); }, 1000) // alert will be run after 1 second on page load

Otra recomendación es no ejecutar código desde cadenas HTML. Mantenga el código relacionado con JavaScript dentro de JavaScript. Puede consultar elementos HTML dentro de JavaScript y, dependiendo de si cambiaron, puede comenzar a ejecutar el código.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!