ofk*_*fko 5 javascript google-custom-search
使用CustomSearchControl时,结果页面的数量会根据您正在查看的页面而有所不同.例如,访问此站点并搜索:car
在第一个结果页面上,它将显示指向3个页面的链接,但是当您单击2或3时,它将在第2页结束.
为什么会发生这种情况,是否有解决方法?
如果有可能得到实际的结果数,并建立我自己的分页?
原因是谷歌只估计有多少结果可用。当您加载每个页面时,它会优化估计,因此页面数会发生变化。
您可以检查customSearchControl.searcher.cursor 对象的estimatedResultCount 属性,但不幸的是它不会帮助您,因为这只是CSE 用于生成分页本身的估计值。(加载每个页面时,它将更改为新的估计值。)还有一个 resultCount 属性,但我相信它是为了向后兼容,因为它始终等于estimatedResultCount。
不幸的是,CSE 也不够聪明,无法记住其估计。因此,您可以从估计值 127 开始,转到最后一页,将其设置为 94,然后转到倒数第二页,将其设置为 120,即使此时它应该知道它不能超过 94。所以我想如果您真的愿意,您可以制作自己的分页,至少可以跟踪最小值。看起来通常(总是?)在最后一页,因此如果需要尽可能好,您可以以编程方式加载最后一页,进行估计来构建分页,然后切换回用户的第一页。
如果您决定走这条路,您可以使用 customSearchControl.searcher.cursor.gotoPage(page) 函数构建自己的分页。(https://developers.google.com/web-search/docs/reference#_class_GSearch)