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;
    });

Googleドキュメントには次のような言及があると思います:

<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 に答える