【问题标题】:Detecting a Google Instant Search and extracting a search keyword from the URL检测 Google Instant Search 并从 URL 中提取搜索关键字
【发布时间】:2012-02-20 19:12:14
【问题描述】:

检测 Google 搜索 URL 是否来自 Google Instant 页面而不是来自典型搜索并从该 URL 中提取关键字的可靠方法是什么?

应该如何区分这两个 URL?是否有用于即时搜索的标准 URL/查询字符串格式?

典型搜索示例:https://www.google.com/search?q=hello+world

典型的搜索只是在查询字符串的q 参数中传递关键字。

即时搜索示例:https://www.google.com/#sclient=psy-ab&hl=en&site=&source=hp&q=hello+world+again&pbx=1&oq=hello+world+again&aq=f&aqi=g-v1&aql=&gs_sm=e&gs_upl=1355l3667l0l3832l17l15l0l2l2l1l255l3081l2-14l16l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=682774cd339f5d00&biw=1316&bih=682

在即时搜索期间,参数会附加在哈希 (#) 之后。在这种情况下检测URL是否包含哈希并在哈希位置后检测q参数是否可靠?

我正在尝试从搜索 URL 中检索当前关键字。

【问题讨论】:

    标签: javascript url google-chrome


    【解决方案1】:

    我写了一个小函数,从查询字符串中提取q参数。

    经过测试并与上面提供的 URL 完美配合...我仍在对其他各种 URL 进行测试,如果发现一些错误,我将修复该功能并在此处更新...

    享受:

    var parse_google_url = function (url)
    {
        var hash_position = url.indexOf('#'),
        query_string = url.substr(hash_position === -1 ? url.indexOf('?') : hash_position);
        return decodeURI((RegExp('q=(.+?)(&|$)').exec(query_string) || [,null])[1]);
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-28
      • 2011-08-08
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2020-03-19
      • 1970-01-01
      相关资源
      最近更新 更多