检测Qualtrics选项卡是否处于活动状态,但在一个页面上除外

时间:2017-01-25 21:22:28

标签: javascript jquery 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 个答案:

答案 0 :(得分:0)

不要将窗口模糊功能放在if中,而是希望将if放在窗口模糊中。像这样应该的工作,虽然我还没有测试过。

--no-commit

值得一提的是,JavaScript并非强类型,因此“string qid = ...”将无效。 JavaScript中的所有变量都只是变量。

答案 1 :(得分:0)

我还没有测试过,但请尝试以下方法。基本上,安东尼的想法,但只是寻找id QID3。

<script>
Qualtrics.SurveyEngine.addOnload(function() {
  var count = "${e://Field/leaveCount}";
    $(window).blur(function(){
        if (!$('QID3')) {
          count++;
          Qualtrics.SurveyEngine.setEmbeddedData('leaveCount', count);
        };
    });
});
</script>