【问题标题】:Looking for custom script (capturing inner HTML using jQuery) in Adobe DTM data element?在 Adob​​e DTM 数据元素中寻找自定义脚本(使用 jQuery 捕获内部 HTML)?
【发布时间】:2014-09-27 20:42:09
【问题描述】:

我正在尝试在 DTM 数据元素的自定义脚本中使用 jQuery 捕获 HTML 文本值。

看场景:

下面是页面代码的sn-p:

<div class="site-categories">
<ul>
   <li class="mobile-tablets main">
    <a href="/mobiles.html" class="mobile-tablets" style="background-position"> Mobiles & Tablets </a> 
    <a href="/computers.html" class="computers" style="background-position"> Computers </a> 
    <a href="/electronics.html" class="electronics" style="background-position"> Electronics </a> 

等等。

所以基本上要求是捕获锚标记的内部 HTML 文本,即“手机和平板电脑”或“计算机”或“电子产品”,具体取决于用户点击的链接。

为了实现这一点,在基于事件的规则部分,我将 Condition 设置为当类(在 div 标签下)等于“site-categories”时触发的标签,并在子元素上启用冒泡(以便覆盖此下的所有内容发射omniture标签)。然后在任何 evar 变量中分配数据元素的值。

在数据元素部分,选择自定义脚本选项后,我正在编写这段代码:

var value = $('this').html();

返回值;

var value = jQuery('this').html();

返回值;

但这不起作用。我什至尝试过使用它:

变量值;

_satellite.setVar('value', jQuery('this').html()); 

返回值;

但这也没有用。我可以为此提供解决方案吗?我希望这是动态的,根据用户在页面上单击的部分,数据元素应该捕获该特定锚标记的内部 HTML 文本。

不知道我哪里出错了。 如果对此存在任何其他解决方案,请告诉我。这将是一个很大的帮助。

提前致谢,

阿迪

【问题讨论】:

  • 试试 $(this).html() - 需要查看更多代码
  • @TheStatehz 试过这个,但这也不起作用。根据您发布的答案(不确定是否已被我错误地删除),您将内部 HTML 值传递给另一个 HTML(id = 'output-area')但这里我的要求略有不同。我只想从页面中获取内部 HTML 文本值并将该值用于其他目的。我面临的挑战只是从页面中获取内部 HTML 值。
  • 什么是this 在你使用它的时候?我们没有可以使用的上下文...您没有提供足够的代码
  • @charlietfl 'this' 我用来动态获取 Anchor 标签的文本值。因此,如果用户单击第一个锚标记,则获取的值应该是第一个锚标记的内部 HTML 文本,依此类推。如前所述,我面临着从页面动态获取内部 HTML 值的挑战。
  • DTM 是一个网络分析工具,我正在编写一个脚本,它可以从页面动态获取值,但由于某种原因,不确定是什么,这没有发生。

标签: javascript jquery html adobe adobe-analytics


【解决方案1】:

几个笔记:

首先在旁注中,在您的 jQuery 代码中,this 不应包含在引号中。您应该将对象引用传递给 jQuery 包装器。用引号括起来使它寻找一个不正确的名为“this”的html元素(例如&lt;this&gt;foobar&lt;/this&gt;)。

至于您的问题.. 不确定您是如何设置规则的,但基本上您想要做的是获取值并将其放入数据元素中,然后在设置 Adob​​e Analytics 变量时引用数据元素。所以看起来你在正确的轨道上,BrettAHale 的答案也在正确的轨道上,但是把它们放在一起:

在您的规则中,添加条件为Data &gt; Custom。然后点击“添加条件”,在代码框中输入:

_satellite.setVar('linkText', jQuery(this).text());
return true; 

这将设置一个名为“linkText”的数据元素,并且您返回 true 以确保条件始终为 true。您可以使用“值”作为名称,但您应该使用更具描述性的名称,以便以后更容易记住它的用途(我使用了“linkText”)。

然后,在规则的 Adob​​e Analytics 部分中,转到 eVar 部分并选择要设置的 eVar。然后对于“设置为”值,输入%linkText%。这是对您刚刚在规则中设置的数据元素的引用。如果 DTM 显示未找到或 w/e 的工具提示,请不要担心;它仅显示/搜索您在界面中设置的已知数据元素,而不是即时显示/搜索规则。单击“save evar”按钮,您应该会看到例如eVar3="%linkText%" 已列出(但对于您选择的任何 eVar)。

保存然后测试/发布规则。

【讨论】:

  • 如果你想重用数据元素,这种方式更好,你也可以使用:this.text而不是jQuery。
【解决方案2】:

在分析工具部分或您的规则中,使用以下内容设置 eVar,而不是数据元素。

%this.text%

您的 evar 框将显示类似这样的内容。 eVarX="%this.text%"

【讨论】:

  • 嗯,你能指出支持这一点的文档吗?我很确定 %..% 语法用于引用数据元素,而 this.text 不是数据元素。
  • @crayonviolent 没有文档,但这是我使用的。
  • 呵呵,我试试;不是第一次出现“未记录的功能”;)
  • @crayonviolent 我放弃了卫星文档。除了方法文档之外,我永远找不到任何有用的东西。我确信在 Adob​​e 接管之前有更好的文档,但我找不到。 :)
  • 感谢 BrettAHale。顺便说一句,这是我目前使用的捷径。我从这个链接获得了一些关于 DTM 实现的有价值的信息,看看:jimalytics.com/tag-management/… 谢谢,
猜你喜欢
  • 1970-01-01
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 2014-06-23
  • 1970-01-01
相关资源
最近更新 更多