我知道iframe如果它是跨域的话,就不可能告诉用户在内部做了什么.我想要做的是跟踪用户是否完全点击了iframe.我想象这样一个场景,还有一个看不见div的顶部iframe和的div意愿,就在这时,通过点击事件的iframe.
这样的事情可能吗?如果是,那我该怎么办呢?的iframes是广告,所以我必须在所使用的标签没有控制权.
是的,我知道Google Analytics.我们将其用于整体网站指标,我知道我们可以跟踪各个链接.然而,我们需要非常具体的链接跟踪解决方案,我们需要跟踪数据提供给我们的web应用程序的实时,所以我写了我自己的解决方案:
jQuery的:
$.fn.track = function () {
var source, url, name, ref, $this;
$this = $(this);
if (window.location.search.substring(1) != '') {
source = window.location.pathname + "?" + window.location.search.substring(1);
} else {
source = window.location.pathname;
}
url = jQuery.URLEncode($this.attr('href'));
name = $this.attr('name');
ref = jQuery.URLEncode(source);
$this.live('click', function (click) {
click.preventDefault();
$.post('/lib/track.php', {
url: url,
name: name,
ref: ref
}, function () { window.location = $this.attr('href'); });
});
};
Run Code Online (Sandbox Code Playgroud)
...使用jQuery URLEncode插件(http://www.digitalbart.com/jquery-and-urlencode/).
现在,这个代码可以在我的PHP后端和我的机器上正常工作,但它似乎并不能为其他人可靠地工作.有时通过jQuery传入的参数不会被传入,导致数据库中的记录没有name,url或ref …
我创建了一些 Firebase 动态链接,但与 Google URL Shortener 不同的是,点击跟踪不再是即时的。
我在 18 小时内再次创建了一些链接(由我自己)访问了很多时间,但是这些点击尚未在 Firebase 控制台中注册 - 显然有很大的延迟,但我不明白为什么会这样,我也不明白知道我什么时候可以看到点击出现在我的控制台 - 有什么想法吗?
假设我需要使用谷歌分析脚本跟踪我的点击次数.我知道确保触发跟踪事件的标准方法是将延续传递到跟踪队列并从click事件处理程序返回false,如下所示:
$('a').click(function () {
var url = $(this).attr('href');
_gaq.push(['_trackEvent', smth]);
_gaq.push(function(){ document.location = url ;}
return false;
});
Run Code Online (Sandbox Code Playgroud)
我的挑战是我想在新标签中打开此链接.
我的完美解决方案是target ="_ blank",但你不能用javascript做到这一点.
window.open(url,'_ blank')将在除firefox之外的所有浏览器中弹出新窗口,默认情况下通常会阻止此窗口.
这意味着我必须从点击处理程序返回true.
所以这就是我的理由,我需要以某种方式同步等待ga脚本请求它的跟踪像素.是什么类型的sleep()的JavaScript版本是什么?功能可以帮助我吗?
谢谢!
我正在尝试测试以下JavaScript代码,这是为了跟踪用户对多项选择调查的响应时间:
document.onclick = function(e) {
var event = e || window.event;
var target = e.target || e.srcElement;
//time tracking
var ClickTrackDate = new Date;
var ClickData = "";
ClickData = target.id + "=" + ClickTrackDate.getUTCHours() + ":" +
ClickTrackDate.getUTCMinutes() + ":" +
ClickTrackDate.getUTCSeconds() +";";
document.getElementById("txtTest").value += ClickData;
alert(target.id); // for testing
}
Run Code Online (Sandbox Code Playgroud)
通常target.id等于被点击元素的id,正如您所期望的那样,但有时target.id是空的,看似随意,任何想法?