2016-06-22 3 views
0

私は提案ボックスにいくつかの結果を示唆するクロム拡張を開発しようとしています。オムニバスの提案が別のページにリダイレクトされないのはなぜですか?

私はそれらのうちの1つをクリックしても何も起こらないが、私はすべきだと思う。同じこともデフォルトの提案になります。コンソールでエラーが表示されます。

エラーはどうにかしてGoogleがコードをコンパイルしたコードのように見えます。ここで

Uncaught Error: error on line 1 at column 16: EntityRef: expecting ';' extensions::omnibox:41

コードです:

chrome.omnibox.onInputChanged.addListener(function(text, suggest){ 

    var suggestions = []; 
    var omdbAPI = 'http://www.omdbapi.com/?' + 's=' + text.split(' ').join('+'); 
    var req = new XMLHttpRequest(); 
    req.open('GET', omdbAPI , true); 
    req.send(); 
    req.onreadystatechange = function(){ 

    if(this.readyState === 4 && this.status == 200) { 

     var data = JSON.parse(this.responseText); 
     if(data.Response == "True"){ 
     data.Search.map(function(a){ 
      suggestions.push({ 
      description: a.Title + ' (' +a.Year + ')', 
      content: 'www.imdb.com/title/' + a.imdbID 
      }); 
     }); 
     console.log(suggestions); 
     suggest(suggestions); 
     } 
    } 
    } 

    chrome.omnibox.setDefaultSuggestion(
    { 
     description: 'Search on IMDB: ' + text 
    } 
); 
}); 
+0

エラーは、「;」が欠落していることを示しています。セミコロンどこかに。 – noogui

+0

@noogui Googeのコードに誤りがあると、たとえそれが本当でないとしても、セミコロンが見つからない場合はどうすればできますか? – ninesalt

+0

@ Swailem95スタックの一番上はChromeのコードですが、エラーの原因は入力にあります。 Chromeが入力を解析し、有効なXMLでない場合はスローすることがわかります。https://chromium.googlesource.com/chromium/src/+/180e7e74926ea32ac039821926542452d1201c5e/chrome/renderer/resources/extensions/omnibox_custom_bindings.js#41 –

答えて

0

あなたはオプションがクリックされたときに発生するために何かをしたい場合は、chrome.omnibox.onInputEnteredイベントのリスナーを登録します。エラーについては

Uncaught Error: error on line 1 at column 16: EntityRef: expecting ';' extensions::omnibox:41

このエラーメッセージは、description property of the suggestionに無効なXMLによって引き起こされます。ドキュメント(強調鉱山)から:

The text that is displayed in the URL dropdown. Can contain XML-style markup for styling. The supported tags are 'url' (for a literal URL), 'match' (for highlighting text that matched what the user's query), and 'dim' (for dim helper text). The styles can be nested, eg. dimmed match. You must escape the five predefined entities to display them as text: stackoverflow.com/a/1091953/89484

最後に、私はすでにIMDBで検索の検索候補を提供拡張子を作成しました、https://chrome.google.com/webstore/detail/imdb-search/cbongpcdgehbfeajgkndgkbdkkfdmdikを参照してください。 インスピレーションのためにソースコードを見たり、必要に応じてインストールしたりすることができます。ソースコードを表示またはダウンロードするには、Chrome extension source viewerを使用することもできます(私も)。

+0

私はちょうどonInputedEnteredリスナーを追加しました。そして提案は正常に動作していますし、正しいページにリダイレクトしていますが、デフォルトの提案はしません。 – ninesalt

+0

@ Swailem95あなたは私の答えの最初の行を過ぎて読んだことがありますか? –

+0

はい、私はしました。私はあなたのコードを見ましたが、あなたがこれをやっていた場所を正確に見つけることができず、あなたの(あまり複雑でない)コードのようなXMLを検証することによってエラーを解決しました。 – ninesalt

関連する問題