Qualtrics.SurveyEngine.addOnload 在 Qualtrics 调查软件中以预览模式运行两次

Qualtrics.SurveyEngine.addOnload runs twice in preview mode in Qualtrics survey software

每当我尝试在预览模式下测试 Qualtrics 调查时,Qualtrics.SurveyEngine.addOnload 都会被调用两次。这对于条件事件(如大多数示例)来说不是问题,但对于无条件代码定时页面更改(这也会被触发两次)来说是个大问题。请参阅以下代码段:

Qualtrics.SurveyEngine.addOnload(function()
{
     $('NextButton') && $('NextButton').hide();
     var that = this;
     var timeOutInterval=1000+Math.trunc(Math.random()*10000);
     alert(timeOutInterval); //for Testing only
     var myVar;
     myVar = setTimeout(function(){ that.clickNextButton();}, timeOutInterval);
});

如果我启动调查,这将导致页面在 1-11 秒后发生变化。如果我预览调查,也会发生这种变化,然后是第二次变化。警报也将显示两次。

有没有人有解决方案,如何在预览模式下测试此功能?

我也 运行 研究过 JFE 的调查预览问题。有一些方法可以绕过 JFE 模式并在非 JFE 模式下预览。

如果只关心块中的一组特定问题而不关心调查流程,最简单的解决方案是使用视图块。它不使用 JFE。转到 Block 下拉菜单并选择 View Block。

如果您需要预览整个调查,可以使用 'break' JFE 并强制其进入非 JFE 模式的技巧。随着 Qualtrics 进行更改,这些技巧似乎是一个移动的目标。我发现今天在我的 Qualtrics 帐户上为我工作的最好的(最简单的)方法(注意所有限定符)是将调查结束对象添加到调查流程中,单击自定义,然后检查 "Override Survey Options"盒子.

如果这不起作用,我发现一旦调查超过一定规模,它就不再使用 JFE 模式。我不知道限制是多少,但如果你在调查结束后添加一堆假问题,你也可以这样欺骗它。

Qualtrics 链接 jQuery 截至当前写作(尽管 shorthand $ 保留给 prototype.js 图书馆)。

以下应在移动预览中跳过 addOnload javascript 的执行:

Qualtrics.SurveyEngine.addOnload(function()
{
    if(jQuery(this.questionContainer).parents('.MobilePreviewFrame').length)
    {
        console.log('Mobile Preview - skipping rest of addOnload');
        return true;
    };
    console.log("Running addOnload()");

   // The rest of your code. Log statements can obviously be removed
});

希望对您有所帮助

看来 Qualtrics 现在也默认使用 JFE 模式进行实时调查。我们已经能够通过将查询字符串 &Q_JFE=0 添加到我们的调查 URL 的末尾来解决这个问题,如下所示:

https://uleidenss.eu.qualtrics.com/SE/?SID=SV_123432434343&Q_JFE=0

这有额外的好处,解决了我们的问题,JFE 模式打破了我们几个长期的 运行 Qualtrics JQuery 实验。