
获取 URL 参数操作
Get URL Parameter 操作从参与者的 URL 中读取一个命名参数,并将其直接写入您选择的变量。它属于事件系统的 Variable Actions 类别。
概述

参与链接可以承载超出 Labvanced 自动读取的信息,包括众包平台自己的目标参数,或来自另一个研究传递的值。Get URL Parameter 是如何从该链接中提取一个特定的命名参数并直接存储到变量中的。
常见用例
- 将众包平台自己的参数(例如 Besample 的
tc)直接读取到变量中,以便基于此分支研究逻辑。 - 将父研究中的静态值通过子研究对象的
Query Parameters字段传递到嵌入的 子研究 中。 - 创建带有附加参数的自定义参与链接(参见 自定义 URL 参数),并将其中一个参数读取回变量中。
工作原理
要访问 Get URL Parameter,请在任务编辑器中打开 事件系统 并创建新的事件。首先选择一个触发器,例如 On Frame Start 或按钮点击,取决于要启动读取的内容。然后在 Add Action → Variable Actions 下选择 Get URL Parameter。
| 选项 | 描述 |
|---|---|
Parameter name | URL 上显示的参数的确切名称, 不包含 & 或 =(例如 tc,而不是 &tc=)。匹配是区分大小写的。 |
Save in Variable | 接收该值的变量。任何变量在这里都有效,并在常规变量选择菜单中正常显示。 注意: 字符串变量是自然默认,因为 URL 值始终是文本;仅在值严格为数字并且您预计要对此进行进一步操作时使用数字变量。 |

该操作在事件触发时只读取该值一次。它不是实时绑定,因此请尽早触发它,以便在研究中的其他部分需要读取该值之前,该值已准备好。如果 URL 上不存在命名参数,结果取决于变量的数据类型:字符串变量被设置为空字符串,而数字变量被设置为 0(该操作读取为空字符串的内容被转换为数字)。
原则上,参数值总是字符串,因为 URL 上的一切都是文本。字符串变量是自然的匹配,但当值严格是数字时,数字变量也有效,例如 tc 的国家代码,如果您的研究之后还需要进行进一步的数学操作,则实际上是更好的选择。
获取 URL 参数操作 vs. URL_Search_Params 系统变量
这并不是严格的非此即彼。URL_Search_Params 自动记录链接上的所有内容,无需设置。 Get URL Parameter 是较简单的选择,当您只需要一个特定的、已经命名的值时:一个操作,无需 JSON,无需代码。 如果实验设计需要,也可以将 URL_Search_Params 与 运行 JavaScript 操作 结合使用。
在一个工作示例中并排查看这两种方法:从全局变量获取自定义 URL,这是一个读取同一 URL 参数两种方式的库研究,以便您可以直接比较结果。该库链接打开研究自己的介绍屏幕,然后给您一个链接以供复制。下面的 URL 是带有 tc 的同一播放器模式链接,因此您可以直接跳到比较。
将此 URL 复制到您的浏览器中并尝试一下:
https://www.labvanced.com/player.html?id=88576&tc=276
工作流程提示
- 准确匹配参数名称。 匹配是区分大小写的,因此
tc和TC被视为不同的参数。 - 写下裸名称,而不是完整查询片段。 字段接受
tc,而不是&tc=或tc=;该操作会在内部构建其余的匹配项。 - 考虑缺失参数的默认设置。 检查此变量的
Requirement Action应该测试为空字符串(字符串变量)或0(数字变量),而不是null,当参数可能缺失时。 - 在值需要之前触发它。 由于读取发生在事件触发时,因此将其放置在早期足够的触发器上,在任何显示或基于该值分支的框架之前。
研究与示例场景
读取众包平台的自有参数
任何众包平台都可以将其自有参数附加到参与链接中,超出 Labvanced 已经自动读取的范围。只要您知道参数的名称,Get URL Parameter 就可以直接读取它,无论是哪种平台发送的。例如,Besample 研究可以附加 tc(目标国家):添加 Get URL Parameter,将 Parameter name 设置为 tc 并且 Save in Variable 设置为自定义变量(例如 Target_Country),即可立即准备好基于此分支逻辑。有关该特定设置,请参见 集成 Besample。
将值传递到子研究
子研究对象 使用 Get URL Parameter 使子研究可以读取父研究通过对象的 Query Parameters 字段附加到其参与链接的静态值,例如在两个关联研究之间携带参与代码或点值。