将 Typeahead 与 Google 自定义搜索引擎结合使用

2024-04-17

我正在尝试让 Twitter Typeahead+Bloodhound 与 Google 的 CSE 配合使用。

到目前为止,我已经成功返回结果,但无法计算出 datumTokenizer。

var results = new Bloodhound({
  datumTokenizer: function(data) {
   return Bloodhound.tokenizers.whitespace(d.value)
  },
  queryTokenizer: Bloodhound.tokenizers.obj.whitespace,
  remote: {
    url: "http://clients1.google.com/complete/search?client=partner&hl=en&sugexp=gsnos%2Cn%3D13&gs_rn=25&gs_ri=partner&partnerid=004914516364918182382%3Ayfqw09r4qvu&types=t&ds=cse&cp=3&gs_id=15&q=%QUERY&callback=showResults&duffCallback=?",
    ajax: $.ajax({type:'GET',dataType:'jsonp',jsonp:'duffCallback'}),
    filter: showResults
  }
});

看小提琴:http://jsfiddle.net/thugsb/3KAjh/ http://jsfiddle.net/thugsb/3KAjh/

您将看到我已从 showResults() 以数组形式返回结果。然而,从filter:似乎没有做任何事情,因为删除该行没有任何效果。所以我不太确定发生了什么事。

请注意 duffCallback 是我从阅读中得出的结果这个问题 https://stackoverflow.com/q/21520609/614566。如果有更好的方法来完成这项工作,我洗耳恭听!


首先,您使用的 datumTokenizer 不太正确。您需要将其更改为:

datumTokenizer: function(data) {
 return Bloodhound.tokenizers.whitespace(data.value)
}

请注意“whitespace”函数现在如何引用“data”输入参数而不是您正在使用的“d”。

至于问题的解决方案,请参阅此处的工作原理(例如尝试搜索“田径”):

http://jsfiddle.net/Fresh/FYavC/ http://jsfiddle.net/Fresh/FYavC/

您的代码的主要问题在于您的远程 URL(这也让我感到困惑!)。有问题的查询字符串参数是:

...&callback=showResults&duffCallback=?

“达夫回调=?”不需要指定“数据类型:'jsonp' https://api.jquery.com/jQuery.ajax/#jQuery-ajax-settingsajax 对象中的“自动添加 jsonp 请求使用的回调详细信息(即“?callback=?”)。此外,“callback=showResults”也不是必需的,因为当成功的 jsonp 时,Bloodhound 框架会隐式调用过滤器方法提出请求。

我同意使用 Typeahead.js 时应如何进行远程调用并不明显。一个远程调用的示例,其中指定了 ajax 对象,并且 Typeahead.js 网站上的一些文档会很有用!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Typeahead 与 Google 自定义搜索引擎结合使用 的相关文章

  • 在 jQuery 中获取 SELECT 的值和文本[重复]

    这个问题在这里已经有答案了 可能的重复 获取选择框中选定选项标签的值 https stackoverflow com questions 7380604 getting the value of the selected option ta
  • 修改 Twitter 帖子上可编辑 Div 的内容

    我正在编写一个 chrome 扩展 它可以帮助用户在 Twitter 上输入内容 当在 twitter 上写推文时 twitter 会打开一个可编辑的 div 容器 当用户输入内容时 twitter 大概正在使用某些网络框架 会生成子 di
  • Internet Explorer 上未针对 Ajax JSONP 调用调用回调

    我正在使用 JSONP 进行 Ajax 调用 从第三方 与我的网站不同的域 获取 JSON 数据 它在 Chrome 和 Firefox 上工作 但在 IE 上失败 9 和 10 是我尝试过的版本 在 IE 调试器中 我看到调用正在完成 使
  • jquery 当前可见的第 n 个子级

    我可以像这样设置每 4 个 item div 的样式 jQuery item nth child 4n addClass fourth item 这工作得很好 但后来我隐藏了一些项目 显示了其他一些项目 并想重新做这个样式 但只对每第四个可
  • 如果选中复选框则显示 div

    我正在尝试构建类似 WordPress 选项的东西 用于在创建文章时切换字段可见性 我所构建的依赖于 click函数使用相应的字段名称切换父项 我想知道如果选中该复选框 执行此操作的最佳方法是什么 因为如果您选中一个框并重新加载页面 因为它
  • JQuery UI:将长元素放在光标位置而不是元素的中间

    我有一些很长的可拖动元素 可以将它们放入背景表的所有单元格中 当我开始拖动此类元素并将其悬停在可放置容器 表格的单元格 上时 了解元素将被放置到何处的 热点 点是其自身的中间 不幸的是 我的元素的中间通常不可见 并且将元素放在正确的位置是没
  • 如何为 jQuery 插件设置私有变量?

    我想创建一个简单的插件 它使用元素的文本作为默认值 或者您可以在调用插件时设置此值 但是 如果我不设置该值 并为多个元素调用插件 则默认值会成倍增加 function fn reText function options var setti
  • Jquery 以编程方式更改

    文本

    编辑 解决方案是将其添加到个人资料页面而不是性别页面 profile live pageinit function event p pTest text localStorage getItem gender 我在列表视图中有一个带有一些文
  • Select2 有 10.000 多个元素时打开速度很慢

    我正在使用 Select2 来填充下拉菜单 Select2如果底层选择有相当数量的项目 则打开下拉菜单时会很慢 我的下拉列表中有超过 10 000 个元素 这是我的代码 ajax url Companies GetCompanies met
  • 如何修复 IE6 上的不透明度

    如何修复 IE6 上的不透明度 此代码不适用于 IE6 filter alpha opacity 50 moz opacity 0 5 khtml opacity 0 5 opacity 0 5 还有这段代码 description ani
  • 如何防止 iframe 中的链接在新选项卡中打开

    我为我制作的基于网络的操作系统制作了一个基于网络的小型网络浏览器 我注意到在某些网站中 它们有喜欢在新选项卡中打开的链接 有没有办法可以防止这种情况并在 iframe 中打开链接 这是我的整个浏览器的代码 以防万一
  • Jquery,在表中设置td的值?

    我创建动态表 tr and td 标签 td 标签之一获取 id detailInfo 我在某个按钮上有一个 onclick 函数 我想在按下按钮后在 td detailInfo 中设置一些值 那么如何设置 id 为 detailInfo
  • JQGrid - 在编辑表单中显示附加列

    我有一个 JQGrid 表 有 30 多个列 我认为这些列的内联编辑对用户来说并不友好 所以我想在网格模式下显示几列 并仅当用户打开该行的编辑表单时显示所有列 这可能吗 在教程中找不到这个 先感谢您 如果你想show并且不要编辑列 然后使用
  • jQuery Clockpicker afterHourSelect

    早上好 这是我在 stackoverflow 上的第一个问题 所以请怜悯 我正在使用jQuery 时钟选择器插件 https weareoutman github io clockpicker 对于某些形式 对于我的一些用户来说 时钟选择器
  • 如何设置 jQuery DataTables 中特定列的最大宽度

    如何设置一个特定列的最大宽度 所有其他列应自动调整大小 我已经尝试了下面的代码 但它不起作用 因为我认为没有 最大宽度 属性 table dataTable paging false info false searching false c
  • 如何将对象数组传递给jade模板?

    我想将一组对象从 mongodb 传递到客户端 这是物体 var objeto img name name of the file image image jpg url title title of the image caption d
  • 无法在 JavaScript for 循环中读取 null 的属性“长度”

    我正在尝试制作一个像 Stack Overflow 那样的 Markdown 编辑器 如果我实际上没有在文本区域中键入星号和包含短语的 http 我会收到标题中列出的此错误 如果我只输入包含星号的短语 则错误指的是这一行 if linkif
  • Jquery,取消绑定鼠标滚轮事件,然后在操作完成后重新绑定它?

    我已经为此苦苦挣扎了一段时间了 我正在使用此代码来监视鼠标滚轮 以便它可以用于使用我拥有的滑块滚动 但是 它有一个问题 即操作排队 因此如果你快速滚动鼠标滚轮 就像任何人通常会做的那样 它们就会堆积并导致错误行为 我知道如何用动画处理此类问
  • 如何限制下拉列表更改而不禁用它

    如何在不禁用下拉列表的情况下限制下拉列表选项更改 意味着我无法更改选项 并且下拉列表不应该是只读的 我的问题是我的服务器没有读取禁用的元素 这是我的出价 http jsfiddle net m3v7y jQuery var lastSel
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function

随机推荐