You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qualtrics中JS设置的Embedded Data跳转后在iOS/MacOS不保存如何解决?

Qualtrics跨系统跳转嵌入字段不生效问题修复方案

根因说明

iOS/MacOS全平台浏览器均采用WebKit内核,该内核在触发页面跳转时会提前终止未完成的异步接口调用。Qualtrics.SurveyEngine.setEmbeddedData 是异步写入接口,原有代码调用该接口后立刻执行跳转,WebKit内核还未将taskStatus的取值写入后端存储就已经触发了跳转,因此受访者返回问卷时拉取到的还是初始值0;Windows平台浏览器的事件循环调度逻辑刚好让写入操作先完成,因此运行正常。

修复代码

在跳转前增加200ms的延迟,确保嵌入字段写入完成后再执行跳转操作,修复后的代码如下:

Qualtrics.SurveyEngine.addOnload(function() {
   var taskStatus = "${e://Field/taskStatus}"
   if(taskStatus == "0") {
        Qualtrics.SurveyEngine.setEmbeddedData("taskStatus", 1);
        // 增加延迟适配WebKit内核的异步写入逻辑
        setTimeout(() => {
            var targetURL = "${e://Field/baseURL}" + "${e://Field/outURL}"
            window.location.replace(targetURL);
        }, 200);
   } else {
        this.clickNextButton();
   }
});

兜底方案

如果延迟方案仍有极端场景不生效,可通过URL参数传值做双重保障:

  • 进入Qualtrics后台的「调查流程」板块,找到taskStatus嵌入字段,开启「从URL参数获取值」配置,将参数来源的优先级设为高于本地存储值
  • 外部任务站点完成后跳转回问卷的链接末尾拼接参数?taskStatus=1,这样不管本地存储是否写入成功,Qualtrics都会直接读取URL参数中的取值作为最新值

内容的提问来源于stack exchange,提问作者mmoore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:45:06