如何使用 Javascript 以秒为单位记录相当于 Qualtrics "page submit" 的时间?

How can I record the equivalent of Qualtrics "page submit" time in seconds using Javascript?

我正在尝试编写 javascript 代码来计算 Qualtrics 中的 "page submit" 时间(从开始查看到单击下一个按钮所花费的时间)。我不能使用常规定时 Qualtrics 问题,因为我有其他代码可以与下一步按钮一起使用,当我向页面添加 Qualtrics 定时问题时,它不起作用。 (我省略了下面的代码只是为了让事情更简单。)

我认为问题在于我无法将开始时间从 Qualtrics.SurveyEngine.addOnload 部分传递到 Qualtrics.SurveyEngine.addOnPageSubmit 部分。

我有两个嵌入式数据字段:StartHolder 和 TimeDiff,都设置为 0。 我正在使用以下代码来尝试计算经过的时间:

Qualtrics.SurveyEngine.addOnload(function()
{
    Qualtrics.SurveyEngine.setEmbeddedData('StartHolder',new Date);
});

Qualtrics.SurveyEngine.addOnPageSubmit(function() {
    var TimeDiff = new date() - Date.parse("${e://Field/StartHolder}");
    Qualtrics.SurveyEngine.setEmbeddedData('TimeDiff',TimeDiff);
});

我认为问题在于我没有将 StartHolder 变量正确地拉回到我的代码中,但我不确定如何修复它。如有任何建议,我们将不胜感激。

您不能在同一页面上设置和传递嵌入式变量。您应该设置一个 JS 变量作为开始时间,然后将您的 addOnPageSubmit 函数放入您的 addOnLoad 函数中。

Qualtrics.SurveyEngine.addOnload(function() {
    var startHolder = new Date();
    Qualtrics.SurveyEngine.addOnPageSubmit(function() {
       var TimeDiff = new Date() - startHolder;
       Qualtrics.SurveyEngine.setEmbeddedData('TimeDiff',TimeDiff);
    });
});