此插件由 Adobe Consulting 团队提供,旨在帮助您从 Adobe Analytics 中获取更多的价值。Adobe 客户关怀团队不提供对此插件的支持,包括安装或疑难解答。如果您需要关于此插件的帮助,请与您组织的 Adobe 客户团队联系。他们可为您安排与顾问会面以寻求帮助。
inList
插件允许您检查某个值是否已存在于一个分隔字符串或 JavaScript 数组对象中。有一些其他插件需要 inList
插件才能正常运行。与 JavaScript 方法 indexOf()
相比,此插件具有一个明显的优势,即它不会匹配部分字符串。例如,如果您使用此插件检查 "event2"
,则此插件不会匹配包含 "event25"
的字符串。如果您不需要检查分隔字符串或数组中的值,或者如果您要使用自己的 indexOf()
逻辑,则无需使用此插件。
尚不支持在Web SDK中使用此插件。
Adobe提供了一个扩展,允许您将最常用的插件与Adobe Analytics一起使用。
如果您不想使用“常用Analytics插件”插件扩展,则可以使用自定义代码编辑器。
在实例化(使用 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
是有效的示例检查值。