如何在Qualtrics中用Javascript修改元信息问题检测手机尺寸?
在Qualtrics中通过JS检测手机物理尺寸实现筛选
可以通过自定义JavaScript结合Qualtrics的问卷逻辑实现这个需求,核心思路是通过JS计算屏幕物理尺寸,再用筛选逻辑判断受访者是否符合资格,具体步骤如下:
1. 创建隐藏问题存储尺寸数据
- 在问卷中添加一个文本输入问题,在问题设置里勾选「隐藏问题」,用来存储计算出的手机尺寸或资格判定结果。记好这个问题的QID(比如
QID123),后续代码会用到。
2. 编写自定义JS代码
在问卷的「Look & Feel」→「Advanced」→「Custom JavaScript」中,或者直接在隐藏问题的「Add JavaScript」面板中添加以下代码:
Qualtrics.SurveyEngine.addOnload(function() { // 获取屏幕CSS像素宽高 const cssWidth = window.screen.width; const cssHeight = window.screen.height; // 获取设备像素比(物理像素与CSS像素的比例) const dpr = window.devicePixelRatio || 1; // 计算物理像素宽高 const physicalWidth = cssWidth * dpr; const physicalHeight = cssHeight * dpr; // 计算对角线物理像素 const diagonalPixels = Math.sqrt(Math.pow(physicalWidth, 2) + Math.pow(physicalHeight, 2)); // 估算物理尺寸(英寸):多数手机PPI在320-400之间,这里取360作为近似值,可根据目标机型调整 const screenSizeInches = (diagonalPixels / 360).toFixed(1); // 将结果存入隐藏问题(替换QID123为你的实际问题ID) document.getElementById('QR~QID123').value = screenSizeInches; // 直接执行筛选逻辑:示例为仅允许6英寸及以上设备参与 if (parseFloat(screenSizeInches) < 6) { // 标记为不符合资格 Qualtrics.SurveyEngine.setEmbeddedData('eligible', 'no'); // 跳转到不符合资格的页面(替换为你的实际页面URL) window.location.href = 'https://your-qualtrics-ineligibility-url'; } else { Qualtrics.SurveyEngine.setEmbeddedData('eligible', 'yes'); } });
3. 设置问卷分支逻辑
- 进入问卷的「Survey Flow」,添加分支逻辑:
- 根据嵌入式数据
eligible的值,将no的受访者引导至专属的「不符合资格」结束页面,yes的受访者继续完成后续问卷。
- 根据嵌入式数据
关键注意事项
- 由于不同厂商手机的PPI(每英寸像素数)存在差异,估算结果会有小幅误差,建议针对目标测试机型调整代码中的PPI数值(比如高端机型可设为400-450)。
- 务必在多款主流手机上测试代码,验证尺寸计算的准确性,避免误筛。
内容的提问来源于stack exchange,提问作者Con Des
相关产品推荐
相关产品推荐

