Javascript - 获取导航到的URL

时间:2015-02-05 13:51:10

标签: javascript jquery html

有没有办法使用JavaScript的OnUnload()函数找出用户导航到哪个网址?

例如,如果我的代码位于page1.html,并且用户点击了http://example.com的链接,那么page1.html中是否有任何方法可以检索网址"http://example.com" {1}}并在页面卸载之前显示/存储它?

如果我通过使用OnClick通过我的链接调用一个函数,我可以这样做,但我找不到办法做到这一点。 (如果需要,我可以发布我的代码,但它确实符合我的业务要求)

编辑:这看起来是不可能的,因为我的业务要求要求我不对页面内容进行任何更改,除了添加存在此代码的javascript文件。

2 个答案:

答案 0 :(得分:0)

忽略onBeforeUnload/onUnload,您不需要。您可以使用这样的简单点击处理程序来完成:

$('a').on('click', function(e)
{
    e.preventDefault();
    var destinationLink = $(this).attr('href');

    $.post('/your/analytics/url', {link:destinationLink}, function()
    {
        // Success
        window.location.href = destinationLink;
    });
});

这将阻止任何链接工作,直到它被提交到您的分析,因此它并不理想 - 您需要确保尽可能快地接收数据。

答案 1 :(得分:0)

您可以替换所点击链接的当前网址。 这将允许您调用服务器来检查单击的URL,然后重定向它。

下面的代码更改了点击链接的网址只有几微秒

$("a").on("click",function(e){
    // Save the current link
    var h = this.href;

    //Change the link of the current a
    this.href = "http://www.example1.com/redirect.php?url="+encodeURI(h);

    // replace the href with the original value on the next stack
    setTimeout((function(my_link){
        return function(){
            my_link.href = h;
        };
    })(this),0);
});
<a href="http://www.example.com">my link</a>