问题标签 [omnibox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何添加到 Chrome 多功能框(地址栏)的上下文菜单?
我正在构建一个 Chrome 扩展程序,它可以翻译 Chrome 浏览器中文本字段中的拼写错误。
我使用了 contextMenu API 并成功实现了扩展,用户可以使用它调出上下文菜单并选择扩展菜单来翻译他或她选择的文本。
但是,我注意到 contextMenu API 的权限并没有扩展到多功能框,没有我的扩展的不同上下文菜单(如下所示)弹出。
您能否对此有所了解并帮助我弄清楚我应该查看哪些权限/API 才能控制 chrome 的 onmibox 的上下文菜单?
algorithm - Google Chrome 多功能框自动填充功能如何工作?
以下帖子中的评论对于理解部分算法特别有帮助。
然而问题仍然存在。我在 Chrome 上做了一些实验:
当我输入“eddit”时,它只建议“reddit”用于一般的谷歌搜索,而如果我完全输入“reddit”,历史reddit url会弹出。
如果我输入“facebook”或“google”或“youtube”的子字符串,则 urls 会成功弹出。说“ceb”、“ogl”、“utu”。因此尝试不应该是这里使用的(唯一)数据结构。
此外,我知道 Chrome 正在使用 sqlite 的 fts 进行全文搜索(sqlite 属性 fts 3/4 to Google)。所以我猜Chrome正在使用sqlite中的倒排索引。
我的问题是:
Chrome 如何自动完成“utu”->“youtube”?(基于我的本地历史记录 url)
- 我知道后缀数组/树可以有效地匹配子字符串。但是找到特定的词“youtube”将是线性的。
- 我猜一个定制的标记器(用于 fts3/4)可以实现这一点。说“谷歌”-> {“g”,...,“gle”,..}。但是会产生太多的token。
google-chrome-extension - 在没有任何关键字触发的情况下收听 chrome 多功能框事件/文本
我学习了如何通过在多功能框中键入特定关键字来调用我的扩展程序的后台 js。但是我需要启用我的扩展程序来收听在多功能框中键入的文本,而无需任何关键字的帮助。
示例:如果用户键入 abc 或 abcd 或 abcd.com,我的扩展程序应该会被触发。这里我不能依赖任何关键字,因为用户会直接输入目标站点名称。
当我尝试使用关键字作为可能的目标名称(比如 abcd.com)时,触发不起作用,因为用户键入 abc 时,chrome 自动建议 abcd.com 并且用户直接选择它并且关键字触发不起作用。
我用谷歌搜索,但我发现的所有教程都是关于使用关键字的。我想要一个像事件监听器这样的东西,它会一直监听每个选项卡的多功能框。
任何教程或资源都会对我有很大帮助。
manpage - 在哪里可以找到可以与多功能框搜索集成的 unix man 文档网站?
我在哪里可以找到可以与多功能框搜索集成的 unix man 文档网站?
当我在 Chrome Omnibar 中键入“man xxx”时,我想打开一个 man 网页。现在,我唯一想念的是一个支持搜索的好人网站。
javascript - 谷歌浏览器地址栏焦点
我正在制作一个简单的 Google Chrome 扩展程序,我想知道,当焦点在 Chrome 的地址栏上时,有没有办法在我的内容脚本中理解?
google-chrome - Google Chrome 搜索多功能框的此处地图 URL
例如,我可以使用以下 URL 从多功能框中搜索 Bing 地图,其中 %s 代替了查询:
http://www.bing.com/maps/default.aspx?q=%s
Here Maps 是否有等效的 URL?
谢谢。
omnibox - 无法为我们的网站重新添加多功能框 opensearch
我们暂时无法解决以下问题:
我们的网站有一个 opensearch 并且运行良好,当用户打开我们的网站时,opensearch 将被添加到他的自定义搜索中。
但是在我的特定 Google 用户上,它没有被添加。我曾经拥有它,然后我删除了它(如果重要的话,它是一个默认的搜索引擎)。从那时起,当我重新打开我们的网站时,它就不会将它添加到我的 Chrome 中。如果我在 Chrome 上创建另一个用户,它确实有效,但是当我使用我的 Google 用户登录时,它会从自定义搜索引擎中删除它!
尝试了很多东西:
- 清理了所有可能的缓存
- 与我的用户在另一台 PC 上尝试过。只要我不与我的 Google 用户签署它,它就可以在另一台 PC 上运行。
- 尝试手动添加它,然后它根本不搜索。
- 删除历史提供者缓存文件
- 禁用我的所有扩展
如何清理这个多功能框缓存或其他东西?它存储在哪里?
这个多功能框历史似乎以某种方式存储在我的 Google 帐户中。Google 帐户是否会记住我删除的自定义搜索,然后不会自动添加它们?
提前致谢!
javascript - 将 Chrome Omnibox 扩展限制为我的建议
我在其他基于技术的网站上看到了一个小问题,尽管我的问题可能只是更具体一点。我正在为 Google Chrome 编写一个扩展,它使用多功能框来提出建议。它工作得很好,一旦输入关键字并点击标签,我就可以提出建议。
但是,我想将浏览器的建议限制为仅列出我已列出并内置到我的扩展程序中的建议。我想排除 Chrome 可能根据浏览器的收藏夹、历史记录等添加的建议。这主要是因为扩展程序经常更改,因为它导致的链接经常更改,我想从浏览器中删除旧的建议用户可能在上周左右使用过。
说我有这个:
我只想在 Chrome 中列出这两件事。如果我可以订购建议也会很有帮助,但我会尽我所能。有没有人遇到过这个?
javascript - 从 Chrome 扩展代码中清除多功能框
如果用户需要,我已经编写了一个 Chrome 扩展来替换新标签。它通过拦截 tabs.onUpdated 并chrome://newtab/
从扩展重定向到另一个页面来工作,如本答案中所述。
问题是该页面的地址栏在扩展中保留了 HTML 的(丑陋的)URL,例如chrome-extension://hibkhcnpkakjniplpfblaoikiggkopka/html/newtabl.html
. 该 URL 如何替换为空字符串?
我试过history.replaceState,但最好的办法是更改newtab.html
路径中的文件()。使用 http:// URL 会使扩展程序崩溃:
有什么聪明的方法可以清除多功能框吗?
javascript - Chrome 多功能框特殊字符抛出错误
我正在编写一个基本的 Chrome 扩展程序,以从 JSON 提要在多功能框中添加建议。几乎所有输入的查询都会在建议下拉菜单中显示预期的结果。
但是,似乎每当在描述中返回与号 (&) 时,Chrome 都会引发错误。
抛出的错误读取并从Chrome"xmlParseEntityRef: no name(...)"
中的方法调用。parseOmniboxDescription
任何有关此事的帮助将不胜感激。我不确定这是否是唯一存在该问题的角色,或者它是否更普遍。