Adobe动态标记管理器:基于事件的规则基于无序列表



如果这个无序列表中的项目没有class或div名称,您将如何使用%this.innerHTML%表示法来提取在基于事件的规则中单击的链接?

< div class="relatedCategories rowBottomSpace" >
    < strong class="header black short">Related Categories</strong>
    <ul>
      <li>
    <a href="/link1" rel="link 1">LINK 1</a>
        <span>|</span>
    </li>
      <li>
    <a href="/link2" rel="link 2">LINK 2</a>
        <span>|</span>
    </li>
      <li><a href="/link3" rel="link 3">LINK 3</a>
    </li>
  </div>

解决方案#1:更新您的选择器以使更具体

这就是我在上面的评论中提到的解决方案。假设Condition的元素标记或选择器类似于div.relatedCategories。如果您将其更改为专门针对其中的链接:div.relatedCategories a,则这将引用单击的链接。

解决方案2:使用自定义条件和数据元素

比方说,无论出于何种原因,您都希望保留原始的更高级别选择器:div.relatedCategories

保持原样,然后规则条件>标准
选择数据>自定义,然后单击"添加条件"。

在自定义代码框中,添加以下内容:

var target = (event.target) ? event.target : event.srcElement;
_satellite.setVar('linkTarget',target);
return true;

这将创建一个名为linkTarget的数据元素,其中将包含对单击链接的html元素对象引用。因此,您可以使用%linkTarget.innerHTML%,或者在"自定义代码"框中备份,将linkTarget设置为target.innerHTML,然后使用%linkTarget%进行引用。