Javascript 检测Qualtrics选项卡是否处于活动状态(一页除外)

Javascript 检测Qualtrics选项卡是否处于活动状态(一页除外),javascript,jquery,qualtrics,Javascript,Jquery,Qualtrics,我试图记录受访者在完成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/j

我试图记录受访者在完成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>

Qualtrics.SurveyEngine.addOnload(函数(){
var count=“${e://Field/leaveCount}”
$(窗口).blur(函数(){
计数++
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount',count);
});
});
然而,当他们被要求暂时离开调查时,调查有一页(上面只有一个问题“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>
//尝试使用.equals()
Qualtrics.SurveyEngine.addOnload(函数(){
字符串qid=Object.keys(Qualtrics.SurveyEngine.QuestionInfo)[0];
var count=“${e://Field/leaveCount}”
如果(!“QID3”。等于(qid)){
$(窗口).blur(函数(){
计数++
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount',count);
});
};
});
//尝试=
Qualtrics.SurveyEngine.addOnload(函数(){
字符串qid=Object.keys(Qualtrics.SurveyEngine.QuestionInfo)[0];
var count=“${e://Field/leaveCount}”
if(Object.keys(Qualtrics.SurveyEngine.QuestionInfo)[0]!=qid){
$(窗口).blur(函数(){
计数++
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount',count);
});
};
});

我不是一个普通的Javascript用户,因此非常感谢您提供的任何帮助。

与其将窗口模糊函数放在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>
//尝试使用.equals()
Qualtrics.SurveyEngine.addOnload(函数(){
var qid=Object.keys(Qualtrics.SurveyEngine.QuestionInfo)[0];
var count=“${e://Field/leaveCount}”;
$(窗口).blur(函数(){
如果(qid!=“QID3”){
计数++
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount',count);
};
});
});

还值得一提的是,JavaScript不是强类型的,所以“string qid=…”不起作用。JavaScript中的所有变量都只是变量。

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

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

Qualtrics.SurveyEngine.addOnload(函数(){
var count=“${e://Field/leaveCount}”;
$(窗口).blur(函数(){
如果(!$('QID3')){
计数++;
Qualtrics.SurveyEngine.setEmbeddedData('leaveCount',count);
};
});
});

想一想,问题可能只是试图强键入该字符串。谢谢,但我担心这对我不起作用。我得到的结果与我迄今为止尝试的结果相同:在调查的任何页面上,它都不再算数。谢谢,但这也给出了与我迄今为止尝试的结果相同的结果:在任何页面上都不算数调查中的纽约佩奇。