Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
Javascript-获取要导航到的URL_Javascript_Jquery_Html - Fatal编程技术网

Javascript-获取要导航到的URL

Javascript-获取要导航到的URL,javascript,jquery,html,Javascript,Jquery,Html,有没有办法使用JavaScript的OnUnload()函数来找出用户导航到的URL 例如,如果我的代码位于page1.html,并且用户单击指向http://example.com,是否有办法让page1.html中的JavaScript代码检索URLhttp://example.com“并在页面卸载之前显示/存储它 如果我通过链接使用函数的OnClick调用函数,我可以做到这一点,但我找不到其他方法。(如果需要,我可以发布我的代码,但它确实满足我的业务要求) 编辑:这看起来是不可能的,因为我

有没有办法使用JavaScript的
OnUnload()
函数来找出用户导航到的URL

例如,如果我的代码位于
page1.html
,并且用户单击指向
http://example.com
,是否有办法让
page1.html
中的JavaScript代码检索URL
http://example.com“
并在页面卸载之前显示/存储它

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


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

忽略
onbeforeuload/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;
    });
});

这将停止任何链接的工作,直到它被提交到你的分析,所以这不是理想的-你需要确保任何时候都是收到数据的尽快这样做

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

下面的代码仅在几微秒内更改单击链接的url

$(“a”)。在(“单击”)上,函数(e){
//保存当前链接
var h=this.href;
//更改当前a的链接
this.href=”http://www.example1.com/redirect.php?url=“+1(h);
//将href替换为下一堆栈上的原始值
setTimeout((函数(my_链接){
返回函数(){
my_link.href=h;
};
})(此),0);
});

简短的回答是否定的。除非用户通过单击属于您站点的链接,然后您可以将其用作您正在查找的信息,否则您可以使用您处理的重定向系统替换页面中的所有链接。就像啊,谢谢你,达洛佐,我也是这么想的。我正在尝试构建一个能够跟踪来自我的站点的尽可能多的数据的东西,并将其发送到远程服务器进行日志记录。但业务要求是,我不能以任何方式更改内容,除非在页面中包含一个javascript文件和必要的代码:(你可以使用Google Analytics吗?你可以用JavaScript轻松做到这一点;只需在所有锚上附加一个点击处理程序即可拦截它。在这个过程中,我可以在哪里查询我的服务器?就在
设置超时
函数之前?我编辑了代码。由于
www.example1.com
是你的服务器,所以通过点击如果使用ink,url将是:
www.example1.com/redirect.php?url=http://www.example.com
,因此您需要一个redirect.php页面来检索url参数并执行任何您想要的操作(如果链接来自您的网站,请检查推荐人…记录它),然后重定向到url。
setTimeout
仅用于处理新选项卡单击,以在页面保持打开状态时,在单击后设置链接的原始值