遇到一个问题,我需要在表单方法上使用 GET 与 POST,但 GATC cookie 数据没有正确附加到 URL,因为表单数据胜过 Google 的 GATC 数据(使用 linkByPost)。
我已经阅读了发布的潜在解决方案 here ,但要使 GET 正常运行似乎需要大量工作。我还偶然发现了另一个解决方案 here ,但 IE 不考虑 url 的“ anchor ”部分之后的任何内容。
有人有其他想法吗?如果我不能通过 JS 处理这个问题,我将不得不进入处理表单操作的脚本并手动处理查询字符串(假设 GATC 数据在 $_REQUEST 数组中)。使用 get 时,FTR、GATC 数据无法通过 $_REQUEST 数组获得。
最佳答案
为了将来引用,以防万一有人遇到同样的问题,这是我实现的解决方案。我从这个 SO post 的答案中提取了一些代码,并将其与 this post 背后的想法相结合,它在其中本地化 GATC 数据,并为每个表单添加隐藏字段。
结果代码:
$(document).ready(function() {
$('#formId').submit(function(e) {
try {
e.preventDefault();
var form = this;
if (typeof _gat !== 'undefined') {
_gaq.push(['_linkByPost', this]);
var pageTracker = _gat._getTrackerByName();
var url = pageTracker._getLinkerUrl(form.action);
var match = url.match(/[^=&?]+\s*=\s*[^&#]*/g);
for ( var i = match.length; i--; ) {
var spl = match[i].split("=");
var name = spl[0].replace("[]", "");
var value = spl[1];
$('<input>').attr({
type: 'hidden',
name: name,
value: value
}).appendTo(form);
}
}
setTimeout(function() { form.submit(); }, 400);
} catch (e) { form.submit(); }
});
});
关于javascript - Google Analytics - 使用 GET 而不是 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670317/