В рамках нашего исследования мы собираем опросы участников с использованием Qualtrics. У Qualtrics есть аккуратная небольшая функция, где вы можете вставлять бит Javascript в вопрос. У нас есть исследование, в котором нам нужно рассчитать разницу в дни, прошедшие с того момента, когда они завершили свой первый опрос, по сравнению с тем, когда они завершают свой текущий опрос, но расчет, похоже, работает непоследовательно на мобильных устройствах. Код прямо сейчас выглядит следующим образом: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. Есть идеи?