此插件由 Adobe Consulting 团队提供,旨在帮助您从 Adobe Analytics 中获取更多的价值。Adobe 客户关怀团队不提供对此插件的支持,包括安装或疑难解答。如果您需要关于此插件的帮助,请与贵组织的帐户管理员联系。他们可以为您安排与顾问的答疑会,以便您向顾问寻求帮助。
inList
插件允许您检查某个值是否已存在于一个分隔字符串或 JavaScript 数组对象中。有一些其他插件需要 inList
插件才能正常运行。与 JavaScript 方法 indexOf()
相比,此插件具有一个明显的优势,即它不会匹配部分字符串。例如,如果您使用此插件检查 "event2"
,则此插件不会匹配包含 "event25"
的字符串。如果您不需要检查分隔字符串或数组中的值,或者如果您要使用自己的 indexOf()
逻辑,则无需使用此插件。
如果您不想使用插件扩展,则可以使用自定义代码编辑器。
在实例化(使用 s_gi
)Analytics 跟踪对象后,将以下代码复制并粘贴到 AppMeasurement 文件中的任意位置。在您的实施中保留代码的注释和版本号可帮助 Adobe 对任何潜在问题进行疑难解答。
/******************************************* BEGIN CODE TO DEPLOY *******************************************/
/* Adobe Consulting Plugin: inList v3.0 */
function inList(lv,vtc,d,cc){var b=lv,e=vtc,c=d,f=cc;if("-v"===b)return{plugin:"inList",version:"3.0"};a:{if("undefined"!==typeof window.s_c_il){var a=0;for(var d;a<window.s_c_il.length;a++)if(d=window.s_c_il[a],d._c&&"s_c"===d._c){a=d;break a}}a=void 0}"undefined"!==typeof a&&(a.contextData.inList="3.0");if("string"!==typeof e)return!1;if("string"===typeof b)b=b.split(c||",");else if("object"!==typeof b)return!1;c=0;for(a=b.length;c<a;c++)if(1==f&&e===b[c]||e.toLowerCase()===b[c].toLowerCase())return!0;return!1};
/******************************************** END CODE TO DEPLOY ********************************************/
inList
函数会根据其输入返回一个布尔值。它使用以下参数:
lv
(必需,字符串或数组):要搜索的值分隔列表或 JavaScript 数组对象vtc
(必需,字符串):要搜索的值d
(可选,字符串):用于分隔 lv
参数中各个值的分隔符。如果未设置,则将默认使用逗号 (,
)。cc
(可选,布尔):如果设置为 true
或 1
,则在检查时会区分大小写。如果设置为 false
或忽略,则会在检查不会区分大小写。默认为 false
。调用此函数时,如果找到匹配项,则将返回 true
;如果找不到匹配项,则将返回 false
。
// Returns true
s.events = "event22,event24";
if(inList(s.events,"event22")) {
// Code will execute
}
// Returns false because event2 is not an exact match in the string
s.events = "event22,event24";
if(inList(s.events,"event2")) {
// Code will not execute
}
// Returns true because of the NOT operator
s.events = "event22,event24";
if(!inList(s.events,"event23")) {
// Code will execute
}
// Returns false because of the case-sensitive check
s.events = "event22,event23";
if(inList(s.events,"EVenT23","",true)) {
// Code will not execute
}
// Returns false because of a mismatched delimiter, treating "events,eVar1" as a single value
s.linkTrackVars = "events,eVar1";
if(inList(s.linkTrackVars,"eVar1","|")) {
// Code will not execute
}
cc
参数设为非布尔值的选项。例如,1
是有效的示例检查值。