Для исследовательского проекта, над которым я работаю, я пытаюсь реализовать таймер, используя функциональность Javascript на Qualtrics, которая будет отслеживать время и отображать его для объектов на нескольких страницах.Реализация многостраничного таймера в Qualtrics
Общая идея моего кода - отслеживать отсчет времени по нескольким страницам. То есть, у меня есть ряд задач, каждый на отдельной странице, но в том же блоке, и я хотел бы отображать, сколько времени осталось каждый раз, когда загружается новая страница.
Для этого сначала я определил несколько встроенных полей данных «timeleftrounded» и «start time» и оставил значения, которые будут назначены позже.
Во-вторых, я поставил следующий код по последнему вопросу непосредственно перед страницами, на которых я хочу, чтобы таймер начинался. Мое намерение состоит в этот код, чтобы читать в текущее время для определения встроенных данных «start_time»
Qualtrics.SurveyEngine.addOnload(function()
{
Event.observe($('NextButton'), 'click', function (e)
{
Qualtrics.SurveyEngine.setEmbeddedData("start_time", Date.now());
});
});
На следующей странице мои задачи начинаются, и как я хочу предметы иметь 40 минут общей сложности, я просто " 40 минут ", код не нужен. Но по этому вопросу у меня больше кода, который затем должен подсчитать оставшееся время (в минутах), когда нажимается кнопка для загрузки следующей страницы.
Qualtrics.SurveyEngine.addOnload(function()
{
Event.observe($('NextButton'), 'click', function()
{
var timeleftrounded = (2400000- (Date.now() - Number("${e://Field/start_time}")))/60000;
Qualtrics.SurveyEngine.setEmbeddedData("timeleftrounded",timeleftrounded);
});
});
Следующая страница использует следующий код, чтобы закруглить этот переменный «timeleftrounded» к первой десятичной точке и отображать его на предмет,
$e{ round(e://Field/timeleftrounded , 1) }
Вот где начинается моя путаница: хотя этот код работает правильно, когда я использую функцию «Просмотр блока ...», когда я использую полный режим предварительного просмотра опроса или запускаю опрос (я сделал копию), таймер не работает - если я не дам неправильный ответ на вопрос, он просто отобразит «0». На каждой странице есть вопрос с проверкой проверки, и как только я даю неправильный ответ хотя бы один раз, таймер работает снова, но если я дам только правильные ответы, таймер никогда не будет работать.
Надеюсь, что мне не хватает чего-то очевидного, но я не смог найти решение в любом месте в Интернете, поэтому я решил, что это может быть интерес к другим людям.