2

我想检查是否已经在站点上调用了 st() 或页面加载。我控制它何时被调用,但我想要一种非常通用的方式来询问它是否已经被调用。主要目的是根据之前发生的情况调用 st() 或 s.tl()。

4

5 回答 5

4

如果 SiteCatalyst 代码已触发,这将返回 true。

(function(){for(w_m in window)if(w_m.substring(0,4)=='s_i_'&&window[w_m].src)if(window[w_m].src.indexOf('/b/ss/')>=0)return!0;})()
于 2013-06-07T17:55:55.763 回答
1

不幸的是,我不知道何时将其引入 AppMeasurement 并且我没有找到任何有关它的文档,但我偶然发现了以下两个回调函数,我们成功地使用它们来识别跟踪请求前后不久的时刻。

s.registerPreTrackCallback(function() {
    console.log('Pre-Track');
});

s.registerPostTrackCallback(function() {
    console.log('Post-Track');
});
于 2017-04-26T15:10:18.527 回答
0

我不确定这实际上会给您任何答案,但您也可以使用以下内容覆盖 st 函数:

s.AltSt = s.t;

s.t = function (vo) {
    s.AltSt(vo);
    console.log("Do your own stuff!");
}

还没有 100% 测试过这个但是第一次观察这应该可以工作..

于 2014-02-12T12:35:45.847 回答
0

这个答案给出了它背后的概念——在触发任何一个函数之前,检查另一个是否已经被触发。例如:

s.pageName="page";
s.eVar1="value";

if(!linkFired) {
  var pageFired=true;
  s.t();
}
if(!pageFired) {
  var linkFired=true;
  s.tl(this,'o','custom link');
}
于 2013-06-07T17:18:06.550 回答
0

你可以等着看是否调用了 s

setTimeout(function checkIfsLoad() {
    if (typeof s == 'object') {
        doYourStuff();
    } else {
        setTimeout(checkIfsLoad,150);
    }
}, 150);
于 2017-03-10T19:35:36.653 回答