javascript - Qualtrics Javascript 在移动设备上运行不一致

标签 javascript android ios mobile qualtrics

作为我们研究的一部分,我们使用 Qualtrics 从参与者那里收集调查。 Qualtrics 有一个简洁的小功能,您可以在其中将一些 Javascript 嵌入到问题中。我们有一项研究,我们需要计算他们完成第一次调查与完成当前调查的天数差异,但计算在移动设备上似乎不一致。现在的代码如下所示:

Qualtrics.SurveyEngine.addOnload(function()
{
  var surv1date=new Date("${e://Field/day1date}");
      surv1date.setHours(0);
      surv1date.setMinutes(0);
      surv1date.setSeconds(0);
      surv1date.setMilliseconds(0);

  var one_day=86400000;

  var difference = Math.abs(todayDate.getTime() - surv1date.getTime())/one_day + 1;
  Math.round(difference);

var intCount = 1;
var daydiff = null;

    do {    
  //$('daydiff').value = Math.round(difference);
   Qualtrics.SurveyEngine.setEmbeddedData('daydiff', Math.round(difference));
    daydiff = Math.round(difference);
    intCount++;
}
while (intCount <= 10  && (daydiff == undefined || daydiff == null || daydiff == NaN || isNaN(daydiff) == true));

    var strday = "on Day ";
    var strfinal = strday.concat(daydiff);
    var newQuestionText = questionText.replace("on Day", strfinal);

    $(this.questionContainer).down('.QuestionText').innerHTML = newQuestionText;

});
;

在移动设备上,有时会出现此代码未正确运行且未计算 daydiff 的情况,但其他时候它运行良好。它会在同一部手机、同一浏览器和相同的一切上工作一天,而不是下一天。我将其设置为循环执行 daydiff 计算最多 10 次,认为这可能会产生影响。我们已经在 iOS 和 Android 设备上看到过这个问题,但从未在桌面设备上看到过。这些设备上启用了 Javascript。有任何想法吗?

最佳答案

我不知道为什么它不能在移动设备上运行,但有两个想法:

1) 我没有看到您在哪里将 todayDate 定义为日期对象。难道你不需要:

var todayDate = new Date();

差异计算之前?

2) 您可以通过从调查流程中调用一个简单的网络服务来进行计算,从而将设备和浏览器排除在外。它可以是一个简单的 php 脚本,您将 day1date 传递给它并返回差异。附带的好处是您将使用一致的时间源。

关于javascript - Qualtrics Javascript 在移动设备上运行不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33786694/

相关文章:

javascript - 如何在 Firefox 中从 JavaScript 解析 HTML?

javascript - AJAX 成功或错误未触发

ios - UITableview 在重新加载时滚动到顶部太高了吗?

ios - Xcode 按钮 (IBAction) 只工作一次

javascript - 服务器上的 AJAX 成功功能

javascript - 使一个 Controller 依赖于另一个 Controller 的范围

java - 启动更新检查程序线程,检查数据库中的新条目

android - 应用内结算接收者权限

Android 自定义适配器 - 不会返回 View ?

ios - 为 HTTP Live Streaming 加密/解密部分文件