如何解决Qualtrics JS 计时器未正确更新/显示
我正在尝试创建一个计时器,用于测量受访者在给定调查页面上停留的时间,并使计时器也显示在页面上。我在 qualtrics 上找不到每个问题/页面的 HTML 编辑器,但是通过在互联网和 qualtrics 论坛上的一些挖掘,(我认为)我找到了一种从 js 使用 HTML 的方法(如代码所示)。不幸的是,当我实际预览 Qualtrics 调查时,我看到了我的计时器,但它是静态的——除了下面这样的内容之外,没有任何真正的显示:
time: 0:0
如果我的代码运行正确,它应该从 0:00 开始(但不是),并且没有时间更新。我想错误在于我没有每次都更新显示,但是我到底该怎么做呢?有人可以帮助我吗? **重要:我不想在 Qualtrics 上使用内置计时器;该计时器对于我们的研究目的来说不够准确。 附上我的调查页面的js代码。
Qualtrics.SurveyEngine.addOnload(function(){
var headerc = document.createElement("div");
headerc.className = "header-cont";
headerc.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: <span id='time'>00:00</span>";
headerc.appendChild(header);
header.appendChild(timer);
document.body.insertBefore(header,document.body.firstChild);
// timepassed is the measure of how long a respondant stays on the given page
var timepassed = 0;
var myTimer;
function startTimer(display) {
myTimer = setInterval(increaseSeconds(timepassed,display),1000);
}
function increaseSeconds() {
timepassed++;
formatTime(timepassed,display);
//document.getElementById("timer_1").innerHTML="time: " + formatTime(timepassed);
}
function formatTime(time,display) {
const minutes = Math.floor(time / 60);
let seconds = time % 60;
if(seconds < 10) {
seconds = `0${seconds}`;
}
var text = ('innerText' in display)? 'innerText' : 'textContent';
display[text] = minutes + ":" + seconds;
return `${minutes}:${seconds}`;
}
display = document.querySelector('#time');
startTimer(display);
$('NextButton').onclick = function (event) {
//stop timer
clearInterval(myTimer);
//timepassed variable at this point should contain how long the respondant has spent on this page.
};
});
Qualtrics.SurveyEngine.addOnReady(function(){});
Qualtrics.SurveyEngine.addOnUnload(function()
{
var var1 = this.getChoiceValue(1)
Qualtrics.SurveyEngine.setEmbeddedData('fruit1',var1);
var var2 = this.getChoiceValue(3)
Qualtrics.SurveyEngine.setEmbeddedData('fruit2',var2);
var timeSpentOnPage = this.timepassed;
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。