2017-01-01 6 views
0

を閉じた私は、次のコードを使用しているChromeの拡張機能を持っている:未確認runtime.lastError tabs.executeScriptを実行中:タブが

chrome.tabs.onUpdated.addListener(
    function(tabId, changeInfo, tab) { 
    if (changeInfo.status === 'complete') { 
     chrome.tabs.executeScript(null, {file: "js/content.js"}); 
    } 
    } 
); 

Webページがロードされている間、私は私のブラウザを閉じた場合は、拡張子がしますクラッシュ。これは、次のエラーが原因であると思われます。

Unchecked runtime.lastError while running tabs.executeScript: The tab was closed. 

どのようにこのエラーを回避できますか?

+0

まあ、行うには簡単なことでは用のコールバックで 'chrome.runtime.lastError'をチェックすることです'chrome.tabs.executeScript()'とにかくこれをやっているはずです。そうすることで、少なくとも問題を別のものに移すことができます(たとえば、コールバックが呼び出される前にコンテキストが破壊されている可能性があります)。 – Makyen

+0

@sangerous、まさに「拡張機能がクラッシュする」という意味ですか? – Pacerier

+0

https://stackoverflow.com/a/45603880/632951 – Pacerier

答えて

0

chrome.tabs.executeScriptにコールバックを追加します。あなたは公式クロームAPIサイトでこの機能上のドキュメントを見つけることができます

chrome.tabs.onUpdated.addListener(
    function(tabId, changeInfo, tab) { 
    if (changeInfo.status === 'complete') { 
     chrome.tabs.executeScript(null, {file: "js/content.js"}, 
     function(result) { 
      // Process |result| here (or maybe do nothing at all). 
     } 
    ); 
    } 
    } 
); 

:何か https://developer.chrome.com/extensions/tabs#method-executeScript

+0

コールバック自体は機能しません。 https://stackoverflow.com/a/45603880/632951に示すようにlastErrorを読み取る必要があります。 – Pacerier

関連する問題