4

我的问题是我有一个重定向到另一个页面的链接。在 webkit 浏览器中,如何强制 sitecatalyst 服务器调用(脚本执行)在重定向发生之前完成?

我正在将 sitecatalyst 用于门户。我已将自定义链接调用配置为包含在 webkit 浏览器上成功调用完成的 doneAction 参数(如 Adob​​e 指南中所述)。

按钮的onClick事件自定义链接代码如下:

<script language="javascript" >
function search(keyword)
{
var s=s_gi('testing');
s.linkTrackVars="prop11,events";
s.linkTrackEvents="event6";
s.prop11=keyword;
s.events="event6";
s.tl(this,'o','Search',navigate());

window.location=searchresults.html;
}
</script>

<script language="javascript" >
function navigate()
{
return false;

/*To induce a delay to ensure that image request is sent to Adobe before the
user leaves the page.(As given in Adobe guide - code release H.25))
Code version H.25 (released July 2012) includes an overloaded
track link method ( s.tl ) that forces WebKit
browsers to wait for the track link call to complete.)*/
}
</script>

但是,即使在此之后,我在自定义链接跟踪中也遇到了错误。重定向发生在呼叫完成之前。

请帮忙。提前致谢。

问候, 哈希尔

4

3 回答 3

5

好的,首先,您如何实现它存在许多问题。以下是它的外观示例:

<a href="searchresults.html" onclick="search('someKeyword');return false;">search</a> 

<script type='text/javascript'>
function search(keyword) {
  var s=s_gi('testing');
  s.linkTrackVars="prop11,events";
  s.linkTrackEvents="event6";
  s.prop11=keyword;
  s.events="event6";
  s.tl(this,'o','Search',null,navigate);
  return false;
}

function navigate(){
  window.location="searchresults.html";
}
</script>

几点

  • 您实际上并没有发布链接或您使用的任何调用该search函数的东西,所以我有一个链接作为示例。
  • navigate当函数应该是第 5 个时,您将函数作为第 4 个参数传递(使用 null 或空白字符串作为第 4 个的占位符)
  • 应该navigate不是navigate()。你这样做的方式是调用函数并将函数的结果作为参数传递。s.tl需要实际的函数或对函数的引用,它将调用该函数。公平地说,Adobe 文档是拼写错误的:它显示了用引号括起来的示例,这是行不通的。
  • 重定向应该放在 中navigate,而不是search.
于 2013-05-03T14:08:57.283 回答
1

用javascript函数替换链接href

function trackLink(e) {
    nextUrl = e.href;
    e.href = "javascript:sendData('" + nextUrl + "')";
}

function sendData(url) {
    s.tl(this, "o", "Link Name", null, function() {
        window.location.href = url;
    });
}

或尝试以下

function sendData(obj) {
    s.tl(obj, "o", "Link Name", null, "navigate");
    return false;
}
<a href="new.html" onclick="sendData(this);return false;">Link</a>
于 2013-10-23T02:44:46.087 回答
0

链接跟踪是一种恐龙形式的跟踪,因为如果您不将分析放在用户体验之前,这些数字现在几乎不准确。我不明白的是,除非您无法控制下一步,否则您为什么不在下一页而不是链接上进行衡量?

至于您的问题:之前关于如何在事件执行之前防止链接跟随的示例非常可靠,但是请记住,如果您绑定了其他 JS 代码,请务必不要破坏它。至于语法,您可以将所有变量作为对象传递给 s.tl 函数,而无需为 s 对象设置 linkTrackVars 和 linkTrackEvents,如果您在动态页面上使用代码,这可能会对事件产生负面影响。

例如

...  
var data = {
   linkTrackVars="prop11,events",
   linkTrackEvents="event6",
   prop11=keyword,
   events="event6"
};
s.tl(this, "o", "Search", data, "navigate");
...

注意:您实际上不能在标准报告中同时使用道具和事件。根据您在 Crayon 的注释中粘贴的代码,我可以看到您正在使用 eVars,因此我认为该示例并不准确。

于 2014-05-19T07:35:28.810 回答