2

我正在編寫一個基本的Chrome擴展插件,以通過JSON提要在多功能框中添加建議。幾乎所有輸入的查詢都會在建議下拉菜單中按預期顯示結果。Chrome多功能框特殊字符拋出錯

但是,似乎只要有&符號(&)作爲說明的一部分返回,Chrome就會引發錯誤。

拋出的錯誤讀數爲"xmlParseEntityRef: no name(...)",並且在Chrome中被parseOmniboxDescription方法調用。

任何有關此事的幫助將不勝感激。我不確定這是否是唯一有此問題的人物,或者是否更廣泛。

回答

3

多功能框架建議的當前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之前執行你的文字此操作,錯誤應該消失。

the documentation您可以使用<url>,<match><dim>進一步註釋您的結果。但是,您可能希望使用更爲結構化的XML構建方法,而不是簡單地串聯字符串。 (我不知道這些XML元素是否有任何屬性,但是如果他們這樣做,以上的方法可能不足以編碼屬性值。)

+0

Thanks!我非常關注URL編碼,我完全忽略了XML。 – Tyler