检测用javascript获取哪个链接,该用户将用户转到特定页面

时间:2015-06-06 10:30:35

标签: javascript jquery html

一直在网上搜索解决方案,但找不到任何东西,所以也许这是不可能的,虽然我希望它仍然存在。

我尝试做的是检测在重定向到我网站上的另一个页面时被点击的按钮(类或ID)。

我所拥有的是一个投资组合页面,其中包含大量具有不同类别的div,因此当有人点击主页上的特定按钮并重定向到投资组合页面时,是否有可能在投资组合页面上检测到来访者来自。因此,检测点击了哪个按钮。

不知道如何处理这个问题,如果之前的window.location最后一个动作找到了类或id,可能会出现这种情况。

希望我的问题有道理,如果有可能,有人可以给我一个想法。

我想它可能与php有关,但遗憾的是服务器端语言在这种情况下不是一种选择。

由于

4 个答案:

答案 0 :(得分:3)

您可以使用的方法示例

  1. 在原始网址中添加信息 - 根据您的选择使用location.search或location.hash?或#
  2. 在原始页面中设置一个cookie(或在现代浏览器中使用session / localStorage)并在目标页面中读取它
  3. 询问document.referrer(并非总是设置)

答案 1 :(得分:2)

如果没有修改链接(添加查询字符串或哈希),或者在源页面(链接所在的位置)上有代码,则无法执行此操作。

前者非常明显:只需添加一个查询字符串或哈希(我使用哈希)来标识点击的来源,并在组合页面上查找哈希值。例如,链接:

<a href="portfolio#foo">Portfolio</a>
<a href="portfolio#bar">Portfolio</a>

并在投资组合页面中:

var from = location.hash;

如果您不想这样做,并且可以在这些页面上放置代码,则很容易:添加一个点击处理程序,在sessionStoragevery well-supported在现代浏览器上设置有关链接的信息),当你到达投资组合页面时,在sessionStorage中寻找它。

E.g,:

$(document).on("click", "a", function(e) {
    // Maybe check the link is going to portfolio, or refine the selector above
    sessionStorage.setItem("linkFrom", this.className);
});

然后在投资组合页面中:

var from = sessionstorage.getItem("linkFrom");

答案 2 :(得分:1)

您可以使用window.localStorage保存所点击元素的最后一个ID。

localStorage.setItem('last_clicked_id', id);

然后在下一页阅读:

localStorage.last_clicked_id

在运行之前,您应该检查localStorage支持:

if(typeof(Storage) !== "undefined") {
    //localStorage code
} else {
    //no localStorage support
}

答案 3 :(得分:0)

这是它的工作原理:最近的页面或URL在URL参数上设置,如GET服务器请求,但客户端将接收它并解析它而不是服务器。最近的页面或网址位于&#34; fromurl&#34;参数。在每个页面上都放入(这是一个javascript代码):

function getURIparams(s) {
loc = window.location.href;
loc = loc.substring((loc.indexOf("?")+1));
loc = loc.split("&");
for (l = 0; l < loc.length; l++) {
    lcc = loc[l].split("=");
    if (lcc[0] == s) {
        return lcc[1];
        break;
    }
}
}
每个锚链接上的

将其放入href:

<a href="/anotherpage.html?fromurl=/[current_page_the_user_is_viewing].html">The Link to another page</a>

之后,在每个页面上执行此javascript:

from_url = getURIparams("fromurl");

&#34; from_url&#34;变量将是用户在到达该页面之前单击的字符串变量。

如果你懒得把这些锚点一个接一个地放在这里,做这个工作,但你需要jquery。你不需要在链接上放置参数,以便知道它来自哪里它将由jquery自动添加。

$(document).on('click', 'a', function(e){
     e.preventDefault();
     window.location.href =  e.target.href + "?fromurl=" + window.location.pathname;
});