Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
目标="_“空白”;由于Google Analytics跨域javascript链接跟踪,无法打开新页面_Javascript_Onclick_Google Analytics_Event Tracking - Fatal编程技术网

目标="_“空白”;由于Google Analytics跨域javascript链接跟踪,无法打开新页面

目标="_“空白”;由于Google Analytics跨域javascript链接跟踪,无法打开新页面,javascript,onclick,google-analytics,event-tracking,Javascript,Onclick,Google Analytics,Event Tracking,我可能已经把onClickjavascript搞砸了。我正在尝试将带有javascript的链接跟踪添加到我用属性标记的所有出站链接中。我所做的一切都是阻止target=“\u blank”正常工作,可能也不会触发事件 另一条信息,target=“\u blank”在登台和开发方面运行良好,因为我没有在这些服务器上显示google analytics init代码。这就是为什么我认为我的javascript是不正确的 可能需要一双更好的眼睛。我做错了什么 function parseUrl( u

我可能已经把
onClick
javascript搞砸了。我正在尝试将带有javascript的链接跟踪添加到我用属性标记的所有出站链接中。我所做的一切都是阻止
target=“\u blank”
正常工作,可能也不会触发事件

另一条信息,
target=“\u blank”
在登台和开发方面运行良好,因为我没有在这些服务器上显示google analytics init代码。这就是为什么我认为我的javascript是不正确的

可能需要一双更好的眼睛。我做错了什么

function parseUrl( url ) {
    var a = document.createElement('a');
    a.href = url;
    return a;
};

function getDomain( url ) {
    hostname = parseUrl(link).hostname
    splitHostname = hostname.split('.');
    if (splitHostname.length > 2) {
        domain = splitHostname[1] // Most likely the domain
    } else {
        domain = splitHostname[0]
    };
    return domain;
};

function trackLinks() {
    // Setup outbound link tracking and push events to GA based on link attribute linkTracking
    $('a').each(function () {
        link = $(this).attr('href');
        linkTracking = $(this).attr('linkTracking');
        if (linkTracking) {
            category = linkTracking.toLowerCase()
            action = getDomain(link);
            label = link;
            $(this).attr('target', '_blank').attr('onClick', '_gaq.push(["_link", "' + link + '"]); return false; ' +
                                                             'recordOutboundLink(this, "' + category + '", "' + action + '", "' + label + '"); return false;');
        };
    });
};
这是我的谷歌分析代码。为了使用跨域跟踪,google建议进行一些修改:

var _gaq = _gaq || [];
var pluginUrl =
 '//www.google-analytics.com/plugins/ga/inpage_linkid.js';
_gaq.push(['_require', 'inpage_linkid', pluginUrl]); // Enhanced Link Attribution
_gaq.push(['_setAccount', 'UA-30468280-1']);
_gaq.push(['_setDomainName', 'leanstartupcircle.com']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

// Delay outbound page load in order to record outbound links
function recordOutboundLink(link, category, action) {
  try {
    var myTracker=_gat._getTrackerByName();
    _gaq.push(['myTracker._trackEvent', category , action ]);
    setTimeout('document.location = "' + link.href + '"', 100)
  }catch(err){}
}

返回false将取消单击操作,这意味着链接将不起作用。另外,您调用的第二个方法将永远不会激发,因为返回false将退出

以不同的方式查看代码

function anExample() {
    _gaq.push(XXX); 
    return false;  <-- I cause the function to exit                       
    recordOutboundLink(XXXX);  <-- I would never be called
    return false;
}
函数示例(){
_gaq.push(XXX);
return false;公平地解决了这个问题


var _gas=_gas | |[];
_gas.push([''u setAccount',UA-YYYYY-Y']);//替换为您的GA编号
_gas.push([''u setDomainName','.mydomain.com']);//替换为您的域
_气体。推送([''u trackPageview']);
_gas.push([''gasTrackOutboundLinks']);
(功能(){
var ga=document.createElement('script');
ga.type='text/javascript';
ga.async=true;
ga.src='//cdnjs.cloudflare.com/ajax/libs/gas/1.10.1/gas.min.js';
var s=document.getElementsByTagName('script')[0];
s、 parentNode.insertBefore(ga,s);
})();

Hmm…链接正在工作,只是在同一个框架中打开。所以这不可能是全部。我也将使用我的谷歌分析代码进行更新。好的,现在我正在查看分析代码,显然这是在同一个窗口中打开链接:
setTimeout('document.location=“”+link.href+”,100)
我想我可以将其修改为在新选项卡中打开……或者在
delay()
之后触发单击会更好吗?