gpt4 book ai didi

javascript - DTM 中基于事件的规则的 'Conditions' 部分中的自定义脚本

转载 作者:行者123 更新时间:2023-11-30 17:12:38 24 4
gpt4 key购买 nike

我正在尝试使用基于事件的规则中的自定义脚本来触发动态标签管理中的标签。
请注意,目前我的目标只是在页面上触发代码,以便我可以利用此脚本在 DTM 中进一步使用。

请看我的问题陈述:在“基于事件的规则”的“条件”部分,我将“事件类型”选择为“点击”。将“元素标签或选择器”设置为“div”。现在,我可以在这里使用“手动分配属性和属性”选项,例如:将“属性”设置为“id”,将“值”设置为“12345”(假设是页面上的 id 值)。因此,每当用户单击任何带有 HTML 元素标记为“div”且属性为“id”且值为“12345”的链接时,Omniture 标记将在其点击功能上触发。

我现在想要的是,而不是使用“手动分配属性和属性”选项,我想通过编写脚本来做类似的事情(在规则条件 -> 数据 -> 海关)。我正在脚本中编写此代码(在取消选中“手动分配属性和属性”选项后):

$('#12345').click(function() { return true ; });

但这行不通。

有人可以帮我解决这个问题吗?我深陷其中。

谢谢,阿迪

最佳答案

如果您只是想让规则触发 ID 为 12345 的 div 的 onclick 则只需将 div#12345 作为元素标签/选择器字段(它接受一个 css 路径,用 querySelectorAll 计算)。

如果您正在寻找一种更“手动”的方式,即您只希望点击事件是通用的,并使用您自己的逻辑执行 100% 自定义条件,则必须在元素标签中输入一个值/selector 字段,因为 DTM 需要知道将事件附加到什么。所以至少你需要做一些非常顶级的事情,例如主体。 IOW 你需要按照与事件委托(delegate)相同的原则来做。

然后在...

规则条件 -> 数据 -> 海关

..你几乎可以做任何你想做的事,但它必须返回 truefalse

例如,您有以下内容:

$('#12345').click(function() { return true ; });

这不会按预期工作,因为您只是附加了一个事件处理程序。基于事件的规则已经处理了事件,这就是为什么你必须指定事件,即“点击”。所以这段代码基本上最终会返回一个错误的值,因为你实际上并没有返回任何东西。

所以相反,你会做这样的事情:

将元素标签/选择器设置为 div 或诸如 body 之类的顶级内容,然后在自定义部分中,执行如下操作:

if ( $(this).attr('id') == '12345' )
return true;
else
return false;

请注意,我使用 jQuery 语法是因为您在帖子中使用了它; DTM 不输出 jQuery 或内置它,因此您需要确保已加载 jQuery 才能使其正常工作。但是获取 this

的 id 属性的“vanilla js”版本很容易

如果您希望能够指定自己的事件处理程序,就像您拥有的那样:

$('#12345').click(function() { return true ; });

那么您可以做的最好的事情就是在 javascript/第 3 方脚本部分的页面加载规则中输出它。从那里你可以使闭包调用成为直接调用规则而不是返回 true,例如:

$('#12345').click(function() { _satellite.track('doSomething'); });

然后你制定一个直接调用规则而不是基于事件的规则,对于字符串条件,你将放置“doSomething”然后从那里弹出你想要的任何东西。

关于javascript - DTM 中基于事件的规则的 'Conditions' 部分中的自定义脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26689077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com