javascript - 如何与两种不同类型的搜索元素共享 Google CSE 结果元素
问题描述
高层次的目标是拥有一个“搜索”页面,其中包含“两列”Google CSE (API 2.0) 搜索和结果元素,并在“搜索”页面上显示结果的其他页面上拥有“两页”搜索元素。这似乎表明“搜索”页面上需要两种不同类型的结果元素。
设计应该是在“两栏”和“两页”搜索元素之间共享“搜索”页面结果元素还是有两个不同的结果元素?
从概念上讲,如果您可以确定结果是来自“两列”元素还是“两页”元素之一,您可以使用回调(开始?)来配置结果元素以匹配搜索。一旦搜索页面用于显示“两页”结果,它就需要能够显示该页面上搜索的“两列”结果。
有两个不同的结果元素并有一个回调(渲染?)隐藏未使用的结果元素会更好,还是动态配置单个结果元素会更好?
如果使用单个结果元素,如何在回调中确定结果的来源(“两列”或“两页”搜索)?
页面加载后回调是否可以多次自定义结果元素?
gname 和结果元素自定义会有什么问题吗?
解决方案
一项实验发现了一些似乎可行的方法,但 Google 文档并未对此进行解释。该实验有两 (2) 个页面:Search1.htm 和 Serach2.htm。
搜索1.htm
<body>
<h1>Search1.htm</h1>
<h2>Two Page Search</h2>
<div class="gcse-searchbox-only" data-gname="page" data-resultsUrl=”Search2.htm"></div>
</body>
搜索2.htm
<body>
<h1>Search2.htm</h1>
<h2>Two Column Search</h2>
<div class="gcse-searchbox" data-gname="column"></div>
<h2>Two Column Results</h2>
<div class="gcse-searchresults" data-gname="column"></div>
<h2>Two Page Results</h2>
<div class="gcse-searchresults-only" data-gname="page"></div>
</body>
Search1.htm 中的搜索将结果生成到两个 Search2.htm 结果元素中。使用回调,两个 gname(页面和列)的所有回调都以相同的结果驱动。使用 Search2.htm 的搜索仅将结果放在 gname=”column” 元素中。
删除 Search2.htm gname="page" 元素会产生所需的行为,其中来自 Search1.htm 和 Search2.htm 的搜索共享相同的结果元素。这在 Google 文档中没有描述,但似乎是一个简单的解决方案。
此外,测试似乎没有在各种回调(initilaizationCallback、启动、准备和渲染)中找到任何信息,这些信息表明哪个搜索元素正在提供结果。
推荐阅读
- arrays - 尝试访问 C 中大数组中的元素时出现分段错误
- python - 使用 Kudu 在 Azure 上部署 Flask - 仅显示默认页面
- java - Java按整数字段对对象数组进行排序,如果它们相同,则按另一个整数值排序
- docker - docker manifest create annotate and push in a script
- python - TimeoutException(消息,屏幕,堆栈跟踪) selenium.common.exceptions.TimeoutException:消息:
- python - 查找最大连续天数
- python - 在这个函数中使用变量的更好方法?
- java - 从 Firebase BY OnDataChange() 方法检索后如何将值设置为 Spinner
- python-3.x - 如何在请求会话中加载 cookie 文件
- regex - Perl:字符串替换