Определить, активна ли вкладка Qualtrics кроме одной страницы
Я пытаюсь подсчитать, сколько раз респондент покидает мой опрос Qualtrics при его заполнении, то есть сколько раз вкладка, на которой находится опрос, становится неактивной, размытой или невидимой. Я работаю с этим кодом в заголовке опроса Qualtrics, где leaveCount
является внедренным объектом данных, добавленным в начало потока опроса со значением 0.
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<script>
Qualtrics.SurveyEngine.addOnload(function() {
var count = "${e://Field/leaveCount}"
$(window).blur(function(){
count++
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount', count);
});
});
</script>
Тем не менее, есть одна страница опроса (с одним вопросом "QID3"), когда их просят покинуть опрос на мгновение, и я не хочу, чтобы эта неактивность была включена в подсчет. Другими словами, я хочу, чтобы он считал бездействие на каждой странице, кроме этой.
Это две вещи, которые я пробовал, но они не работают. Вместо того, чтобы не считать страницу с "QID3", она больше не считается.
// attempt with .equals()
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<script>
Qualtrics.SurveyEngine.addOnload(function() {
String qid = Object.keys(Qualtrics.SurveyEngine.QuestionInfo)[0];
var count = "${e://Field/leaveCount}"
if (!”QID3".equals(qid)) {
$(window).blur(function(){
count++
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount', count);
});
};
});
</script>
// attempt with !=
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<script>
Qualtrics.SurveyEngine.addOnload(function() {
String qid = Object.keys(Qualtrics.SurveyEngine.QuestionInfo)[0];
var count = "${e://Field/leaveCount}"
if (Object.keys(Qualtrics.SurveyEngine.QuestionInfo)[0] != qid) {
$(window).blur(function(){
count++
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount', count);
});
};
});
</script>
Я не обычный пользователь Javascript, поэтому любая помощь будет принята с благодарностью.
2 ответа
Я не проверял это, но попробуйте следующее. По сути, идея Энтони, но просто ищет идентификатор QID3.
<script>
Qualtrics.SurveyEngine.addOnload(function() {
var count = "${e://Field/leaveCount}";
$(window).blur(function(){
if (!$('QID3')) {
count++;
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount', count);
};
});
});
</script>
Вместо того, чтобы помещать функцию размытия окна в if, вы хотите поместить размытие if в окно. что-то вроде этого должно работать, хотя я не проверял это.
// attempt with .equals()
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<script>
Qualtrics.SurveyEngine.addOnload(function() {
var qid = Object.keys(Qualtrics.SurveyEngine.QuestionInfo)[0];
var count = "${e://Field/leaveCount}";
$(window).blur(function(){
if ( qid !== "QID3" ) {
count++
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount', count);
};
});
});
</script>
Стоит также упомянуть, что JavaScript не является строго типизированным, поэтому "строка qid = ..." не будет работать. все переменные в JavaScript являются просто переменными.