Soy nuevo en esto. Tengo una encuesta de Qaultrics que consta de diferentes bloques; cada bloque con su propio temporizador. Lo que quiero lograr es lo siguiente; si los participantes completan el primer bloque antes del tiempo establecido, el cronómetro de ese bloque se borrará cuando pasen al siguiente bloque donde comenzaría un nuevo cronómetro. En el bloque siguiente, se debe iniciar un nuevo temporizador. Cualquier ayuda sería muy apreciada.
Qualtrics.SurveyEngine.addOnload(function() { var headerCont = document.createElement("div"); headerCont.className = "header-cont"; headerCont.id = "header_container"; var header = document.createElement("div"); header.className = "header" header.id = "header_1"; var timer = document.createElement("div"); timer.className = "timer"; timer.id = "timer_1"; timer.innerHTML = "Time Remaining: <span id='time'>01:00</span>"; headerCont.appendChild(header); header.appendChild(timer); document.body.insertBefore(headerCont, document.body.firstChild); function startTimer(duration, display) { var timer = duration, minutes, seconds; var myTimer = setInterval(function() { minutes = parseInt(timer / 60, 10) seconds = parseInt(timer % 60, 10); minutes = minutes < 10 ? "0" + minutes : minutes; seconds = seconds < 10 ? "0" + seconds : seconds; var text = ('innerText' in display)? 'innerText' : 'textContent'; display[text] = minutes + ":" + seconds; if (--timer < 0) { clearInterval(myTimer); timeOver(); } }, 1000); } var timerSeconds = 60, display = document.querySelector('#time'); startTimer(timerSeconds, display); var timeOver = function() { document.getElementById("timer_1").innerHTML = "";} }); Qualtrics.SurveyEngine.addOnUnload(function() { clearInterval(myTimer); clearInterval(timer); clearInterval(timer_1); document.getElementById("timer_1").innerHTML = ""; });Aquí esta lo que hice;
En la primera pregunta usé el siguiente código
```Qualtrics.SurveyEngine.addOnload(function() { var headerCont = document.createElement("div"); headerCont.className = "header-cont"; headerCont.id = "header_container"; var header = document.createElement("div"); header.className = "header" header.id = "header_1"; var timer = document.createElement("div"); timer.className = "timer"; timer.id = "timer_1"; timer.innerHTML = "Time Remaining: <span id='time'>02:10</span>"; headerCont.appendChild(header); header.appendChild(timer); document.body.insertBefore(headerCont, document.body.firstChild); function startTimer(duration, display) { var timer = duration, minutes, seconds; var myTimer = setInterval(function() { minutes = parseInt(timer / 60, 10) seconds = parseInt(timer % 60, 10); minutes = minutes < 10 ? "0" + minutes : minutes; seconds = seconds < 10 ? "0" + seconds : seconds; var text = ('innerText' in display)? 'innerText' : 'textContent'; display[text] = minutes + ":" + seconds; if (--timer < 0) { clearInterval(myTimer); timeOver(); } }, 1000); } var timerSeconds = 130, display = document.querySelector('#time'); startTimer(timerSeconds, display); var timeOver = function() { document.getElementById("timer_1").innerHTML = "";} });```Luego, en la última pregunta del bloque, utilicé el siguiente código
{ Qualtrics.SurveyEngine.addOnPageSubmit(function() { Qualtrics.SurveyEngine.setEmbeddedData('timeRemaining',timer); clearInterval(myTimer); // fairly certain this isn't doing anything }); }); Qualtrics.SurveyEngine.addOnReady(function() { /*Place your JavaScript here to run when the page is fully displayed*/ }); Qualtrics.SurveyEngine.addOnUnload(function() { document.getElementById("header_container").remove(); });```