我正在编写一个基本的 Chrome 扩展程序,以通过 JSON 源在多功能框中添加建议。几乎所有输入的查询都会在建议下拉列表中显示预期的结果。
然而,每当描述中返回与号 (&) 时,Chrome 就会抛出错误。
抛出的错误读取"xmlParseEntityRef: no name(...)"
并被称为来自parseOmniboxDescription
Chrome 中的方法。
任何有关此事的帮助将不胜感激。我不确定这是否是唯一有这个问题的角色,或者这个问题是否更普遍。
当前的多功能框建议 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(使用前将#替换为@)