【问题标题】:How to get URLs from referring page in jQuery如何从 jQuery 中的引用页面获取 URL
【发布时间】:2020-02-19 19:44:50
【问题描述】:

我需要通过 jQuery 从我的推荐页面获取 URL。 URL 位于 <a> 元素中,在 HTML 中如下所示:

<a href="http://localhost/sr19repairables/vehicles/repairables/2011-chrysler-town-country-touring-minivan-4d/" title="2011 Chrysler Town & Country Touring Minivan 4D">

引用页面上有多个 <a> 元素,我需要从所有这些元素中获取 URL 并将它们放入一个数组中。有什么帮助吗?

我的第二页上有一个按钮,上面附有这个 jQuery:

$(document).ready(function(){
    $(".single_vehicle_previous_button").click(function(){
        var referrer = document.referrer;
            if (document.referrer == "http://localhost/sr19repairables/vehicles/rebuilt-vehicles") {
                alert(value=referrer);
            };
            if (document.referrer == "http://localhost/sr19repairables/vehicles/repairables/") {
                alert(value=referrer);
            };
            if (document.referrer == "http://localhost/sr19repairables/vehicles/") {
                alert(value=referrer);
            };
    });
});

因此,如果我的引荐页面是这三个页面之一,我希望它能够获取这些页面上锚点中的 URL。该警报仅用于测试目的。这有助于解决问题吗?

【问题讨论】:

  • 我认为您需要重新考虑您的要求。如果您的页面是从“google.com”打开的——获取所有 URL 有什么用?最好从上一页传递您需要的信息(假设它在您的控制之下)。
  • @freedomn-m 我将检查引用页面是否是仅有的三个 URL 之一,如果不是,则执行另一个操作。以及如何从上一页传递这些信息(它在我的控制之下)
  • 嗯,这与您提出的问题完全不同。 Q:从上一页的所有锚点中获取all URL。注释:查看 document.referrer 是否匹配
  • 请记住,有些网站会阻止发送 HTTP Referer 标头。 stackoverflow.com/questions/6817595/remove-http-referer
  • @freedomn-m 我之所以没有询问是否检查推荐人是因为我知道。检查我的编辑

标签: javascript jquery wordpress url


【解决方案1】:

如果您已经知道它在同一个站点上(因为您已经检查了 url),那么您应该不会遇到通过 ajax 加载随机页面的常见问题。

可以使用$.ajax获取页面,然后jquery解析返回的html:

$.ajax(document.referrer)
    .done(function(html) { 
        var urls = $("<div/>").html(html)
                     .find("a")
                     .map(function(i, e) { return $(this).attr("href"); }
    });

【讨论】:

  • 它正在返回[object Object] 有什么想法吗?我的锚在&lt;li&gt; 内,我的&lt;li&gt;&lt;ul&gt; 内,最后,我的&lt;ul&gt; 在我的&lt;div&gt;
  • 不要使用 alert() 查看任何输出 - 它始终是 [object Object] - 使用 console.log(urls) - 它是请求的 URL 数组。
  • 有没有办法查看 URL 数组?我的下一步是在该数组中找到我当前页面的 URL 并获取它之前的 URL。
  • 好吧,您专门要求提供一组 URL(“我需要从所有这些 URL 中获取 URL 并将它们放入一个数组中”),所以人们会假设你会知道如何处理它。添加debugger; 语句并使用浏览器调试工具。或者按照上面的建议使用console.log(urls)。如果您需要对他们做其他事情,请提出一个新问题。
  • 注意:答案中有错字 - 应该是.attr("href")
猜你喜欢
  • 1970-01-01
  • 2017-09-08
  • 2016-03-22
  • 2012-08-27
  • 1970-01-01
  • 2017-08-23
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多