【问题标题】:Capture search terms with javascript / jquery使用 javascript / jquery 捕获搜索词
【发布时间】:2025-12-31 00:45:07
【问题描述】:

我看过各种关于如何使用 PHP tp 抓取用于查找网站的搜索词的文章和帖子。例如,

Capture search engine keywords in php

如何使用 Javascript / jQuery 也能做到这一点?

最终,我想获取关键字并将它们用于我已经编写和工作的 AJAX 请求(用于其他类似但不同的东西)。

注意:这对我来说是一个新区域,所以请慢慢输入,用勺子喂它,如果可以的话,我们总是感谢您提供指向更多详细信息的链接。

【问题讨论】:

    标签: javascript jquery seo


    【解决方案1】:

    你可以像这样使用document.referrer获取上一页url的url:

    console.log(document.referrer);
    

    会输出类似:

    http://www.google.com/search?hl=en&q=stack+overflow&aq=0&oq=stack+over&aqi=g10
    

    只提供给你的 ajax。

    【讨论】:

    • 截至 2019 年 10 月 8 日。浏览器不会返回完整的 URI,如果您使用 google 搜索网站并使用 Bing 进行相同的搜索,它们只会返回“google.com”。
    【解决方案2】:

    使用您链接到的问题中的正则表达式,此函数将返回用于查找当前页面的关键字数组或空数组:

    function parse_keywords(url){
        var matches = url.match(/.*(?:\?p=|\?q=|&q=|\?s=)([a-zA-Z0-9 +]*)(?:&toggle=|&ie=utf-8|&FORM=|&aq=|&x=|&gwp)/);
        return matches ? matches[1].split('+') : [];
    }
    
    console.log(parse_keywords(document.referrer)); // Get keywords from referrer
    console.log(parse_keywords('http://www.google.com/search?hl=en&q=stack+overflow&aq=0&oq=stack+over&aqi=g10')); // Or any given url
    

    【讨论】:

      【解决方案3】:

      简短的回答:你不能。

      编辑:嗯,你可以。我的错。请参阅document.referrer 答案。我的 不过,最后一点仍然有效。

      扩展版:Javascript 在客户端运行,而 PHP 在 Web 服务器上运行。因此,PHP 可以访问环境变量,例如 HTTP 引用,并且可以提取其中的一部分。在任何情况下,您都需要提供一些信息以及您的网站(例如隐藏字段),这些信息可能会通过 javascript 进行处理。

      此外,您的 ajax 请求(您猜对了)是对服务器端脚本的调用。因此,您可能希望在网站交付脚本中使用该脚本的逻辑。

      【讨论】: