1

我正在处理这个 javascript 代码,什么时候进入头脑,我刷新它进入 404 页面。

请有人帮忙。

<script type="text/javascript">
function recordOutboundLink(link, category, action) {
    try {
        var myTracker = _gat._getTrackerByName();
        _gaq.push(['myTracker._trackEvent', category, action]);
        setTimeout('document.location = "' + link.href + '"', 100)
    } catch (err) { }
}
$(document).ready(function () { $('#myid').click(recordOutboundLink(this, 'regular   xxxxx', 'xxxx.example.com')); });
 </script>
4

2 回答 2

3

您正在尝试将结果注册recordOutboundLink()为单击处理程序,导致该函数首先运行,评估window.href为要重定向到的页面。的值window.href通常是undefined,因此浏览器将尝试重定向到http://undefined或类似的东西。

相反,您应该只在单击某些内容时执行该函数,如下所示:

$(document).ready(function () { 
    $('#myid').click(function() {
        recordOutboundLink(this, 'regular   xxxxx', 'http://xxxx.example.com');
        return false;
    });

我相信谷歌文档提到了这样的事情:

<a href="bla bla" onclick="recordOutboundLink(this, 'regular crap', 'http://www.example.com'); return false;">tada click me</a>

编辑

您的位置应始终是绝对的,即以 开头http://https://或简单地//

于 2012-12-03T13:07:52.170 回答
1

您需要将完整的 url 传递给方法,即与http://部分

所以要么使用:

.click(recordOutboundLink(this, 'regular   xxxxx', 'http://xxxx.example.com'))

或者

.click(recordOutboundLink(this, 'regular   xxxxx', '//xxxx.example.com'))
于 2012-12-03T13:08:03.910 回答