Chrome 多功能框特殊字符抛出错误

2024-03-19

我正在编写一个基本的 Chrome 扩展程序,以通过 JSON 源在多功能框中添加建议。几乎所有输入的查询都会在建议下拉列表中显示预期的结果。

然而,每当描述中返回与号 (&) 时,Chrome 就会抛出错误。

抛出的错误读取"xmlParseEntityRef: no name(...)"并被称为来自parseOmniboxDescriptionChrome 中的方法。

任何有关此事的帮助将不胜感激。我不确定这是否是唯一有这个问题的角色,或者这个问题是否更普遍。


当前的多功能框建议 API 要求将它们指定为编码的 XML 文本,而不仅仅是纯文本。一些字符包括&需要进行适当的编码。

要在浏览器 JavaScript 中对整个 XML 字符串进行编码,您可以执行以下操作:

function encodeXml(s) {
  var holder = document.createElement('div');
  holder.textContent = s;
  return holder.innerHTML;
}

console.log(encodeXml("Good & Bad > Bad & Good"));
// "Good & Bad > Bad & Good"

如果您在将文本传递到多功能框 API 之前对文本执行此操作,则错误应该会消失。

Per 文档 https://developer.chrome.com/extensions/omnibox#type-SuggestResult您可以使用<url>, <match>, and <dim>进一步注释您的结果。但是,您可能希望使用更结构化的 XML 构建方法,而不是简单地连接字符串。 (我不知道这些 XML 元素是否有任何属性,但如果有,上面的方法可能不足以编码属性值.)

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

Chrome 多功能框特殊字符抛出错误 的相关文章

随机推荐

  • 使用 ColdFusion 从 HTML 生成图像

    我有一个 ColdFusion 页面 其中有一个样式化的 HTML 表格 我希望能够做的是设置一个功能 允许我们的客户将表格保存为图像文件 以便在幻灯片放映中使用 我已经阅读了 cfcontent 的一些文档 但是 我开始感觉我需要一个第三
  • 如何使用 System.HashCode.Combine 来处理超过 8 个值?

    NET 标准 2 1 NET 核心 3介绍 https github com dotnet corefx issues 14354 System HashCode https learn microsoft com en us dotnet
  • T-SQL计算列如何获取ISO周数[重复]

    这个问题在这里已经有答案了 我有一个基于日期和计算列的日历表 下面的代码 问题是 由于逻辑 52 7 364 它返回的是第 53 周 所以实际上我们每年总是有一些 空闲 天 例如 2014 年的这些天 2014 12 282014 12 2
  • 跳过从数据文件中读取字符 C++

    我有一个具有以下格式的数据文件 A dat Theta 0 0000 Phi 0 00000 Theta 1 0000 Phi 90 0000 Theta 2 0000 Phi 180 0000 Theta 3 0000 Phi 360 0
  • 如何使用 jQuery Validate 删除错误类?

    我有一个表单 它使用 jQuery Validate 插件将错误类添加到一组复选框的父 div 中 但是 当选中某个复选框时 错误类将被删除 但 CSS 样式仍然保留 有什么想法我做错了吗 例子 http jsfiddle net qK3S
  • 更改文本文件的默认“复制到输出目录”设置

    有谁知道是否有办法更改 Visual Studio 2008 中文件类型的默认 复制到输出目录 设置 我经常将文本文件添加到我的项目中 它们可以是自述文件中的任何内容 或一些使用信息 或应用程序在运行时实际使用的测试文件 但我从来没有添加过
  • Devise Oauth Twitter:OAuth::未经授权禁止 403

    我正在尝试使用 Devise 实现 Oauth Twitter 我在 Twitter 上创建了应用程序我已将回调 url 设置为 http 本地主机 3000 http localhost 3000我已将其添加到 config initia
  • 会话和基于令牌的身份验证之间的技术差异

    我正在写我的学士学位 其中我需要找出哪种身份验证 授权方法最适合我正在合作的公司 因此 我一直在比较基于会话和基于令牌的身份验证方法 但对于令牌如何工作以及它们如何比会话身份验证更好 我不清楚以下几点 我 100 清楚的唯一好处是 令牌可以
  • 将精确的 cv::Mat 图像存储在 sqlite3 数据库中

    有什么办法可以准确存储cv Mat使用 sqlite3 格式化数据Qt 因为我将来将使用相同的 cv Mat 格式 我尝试将图像转换为无符号字符 他们存储它 但这对我不起作用 还有其他技术吗 您可以将 cv Mat 序列化为 QByteAr
  • nodejs ffmpeg在特定时间播放视频并将其流式传输到客户端

    我正在尝试使用 nodeJS 和 ffmpeg 制作一个基本的在线视频编辑器 为此 我需要执行 2 个步骤 设置客户端视频的进出时间 要求客户端在特定的时间观看视频 并切换视频的位置 这意味着 如果使用单个视频作为输入 并将其分割成更小的部
  • java.io.InvalidClassException:本地类不兼容:

    我创建了客户端和服务器 然后在客户端添加了一个类用于序列化目的 然后只需转到硬盘驱动器中客户端的文件夹并将其复制粘贴到服务器对应的位置即可classname class and classname java分别 它在我自己的笔记本电脑上运行
  • 修改后的先序树遍历中的路径

    我已经实现了修改后的预序树遍历正如这里所解释的 http www sitepoint com hierarchical data database 2 我的树是这样的 ref name lft rgt NULL base 1 8 2 bas
  • 前向声明中的字段类型不完整[重复]

    这个问题在这里已经有答案了 我使用以下简单文件重现错误 它说 字段的类型 Foo 不完整 bar h class Foo class Bar private int x Foo foo error incomplete type publi
  • 受保护析构函数的基本原理

    我注意到许多 Poco 类都有一个受保护的析构函数 这使得它们的编码变得更加烦人 例如 这是我的一些代码 struct W2 Poco Util WinRegistryConfiguration typedef Poco Util WinR
  • Android 对话框,按下按钮时保持对话框打开

    我想在按下按钮时保持对话框打开 目前正在关闭 AlertDialog Builder builder new AlertDialog Builder this builder setMessage Are you sure you want
  • 在 javascript 资源中使用 Rails 辅助方法

    有没有办法使用 Rails 辅助方法 更具体地说 是 javascript 资源文件中的路径辅助方法 这个文件foo js coffee erb bar val 如果我能从 erubis 得到我会很高兴 bar val path to cr
  • 创建一段时间后删除会话文件

    我将会话保存在 temp 目录中的另一个目录中 说 session目录 使用session save path session 此外 还有一个代码可以在创建和注销 10 分钟后终止会话 但我提到 如果用户登录并关闭计算机 我的注销和会话销毁
  • 向 UITextField 添加不可编辑的文本后缀

    我有一个 UITextField 我想添加一个 所有输入文本的后缀 用户不应该能够删除这个 或在其右侧添加文本 解决这个问题的最佳方法是什么 Use the UITextFieldDelegate http developer apple
  • 转置前导维度为 N 的一维数组

    如何在没有额外空间的情况下转置前导维度为 N 的一维数组 任何语言都可以 我的一维就地矩阵转置解决方案 mn M N M rows and N columns q mn 1 i 0 Index of 1D array that repres
  • Chrome 多功能框特殊字符抛出错误

    我正在编写一个基本的 Chrome 扩展程序 以通过 JSON 源在多功能框中添加建议 几乎所有输入的查询都会在建议下拉列表中显示预期的结果 然而 每当描述中返回与号 时 Chrome 就会抛出错误 抛出的错误读取 xmlParseEnti