有没有办法使用JavaScript的OnUnload()
函数找出用户导航到哪个网址?
例如,如果我的代码位于page1.html
,并且用户点击了http://example.com
的链接,那么page1.html
中是否有任何方法可以检索网址"http://example.com"
{1}}并在页面卸载之前显示/存储它?
如果我通过使用OnClick
通过我的链接调用一个函数,我可以这样做,但我找不到办法做到这一点。 (如果需要,我可以发布我的代码,但它确实符合我的业务要求)
编辑:这看起来是不可能的,因为我的业务要求要求我不对页面内容进行任何更改,除了添加存在此代码的javascript文件。
答案 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>