使url链接未定义的javascript代码

使url链接未定义的javascript代码,javascript,Javascript,我正在编写这个javascript代码,当它出现在头部时,我刷新它,它就会出现在404页面上 请找个人帮忙 <script type="text/javascript"> function recordOutboundLink(link, category, action) { try { var myTracker = _gat._getTrackerByName(); _gaq.push(['myTracker._trackEvent',

我正在编写这个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>

函数recordOutboundLink(链接、类别、操作){
试一试{
var myTracker=_gat._getTrackerByName();
_gaq.push(['myTracker._trackEvent',category,action]);
setTimeout('document.location=“”+link.href+'”,100)
}捕获(错误){}
}
$(document).ready(函数(){$('#myid')。单击(recordOutboundLink(这是'regular xxxxx','xxxx.example.com');});

您试图将
recordOutboundLink()
的结果注册为单击处理程序,导致函数首先运行,将
window.href
计算为要重定向到的页面。
window.href
的值通常是
未定义的
,因此浏览器将尝试重定向到
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://
开始,或者简单地说是
/
,您试图将
recordOutboundLink()
的结果注册为单击处理程序,导致函数首先运行,将
window.href
作为要重定向到的页面进行计算。
window.href
的值通常是
未定义的
,因此浏览器将尝试重定向到
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://
开始,或者简单地说是
//
,您需要将完整的url传递给该方法,即使用
http://
部分

因此,要么使用:

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


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

因此,要么使用:

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


谢谢杰克,我不能编辑这个特定问题的HTML(cms插件),所以我只能访问头部的JS。Thanks@jelly46您更改已接受答案的原因是什么?这不管用吗?谢谢杰克,我不能编辑这个特定问题的HTML(cms插件),所以我只能访问头部的JS。Thanks@jelly46您更改已接受答案的原因是什么?这不管用吗?你好,谢谢你,我做了,但我仍然遇到同样的问题。你好,谢谢你,我做了,但我仍然遇到同样的问题。