[解決済み] Chrome Extension メッセージの受け渡し:応答が送信されない
2022-04-26 18:21:56
質問
コンテンツスクリプトとエクステンションの間でメッセージを受け渡しようとしています。
以下は、content-scriptに記述している内容です。
chrome.runtime.sendMessage({type: "getUrls"}, function(response) {
console.log(response)
});
そして、バックグラウンドのスクリプトには
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.type == "getUrls"){
getUrls(request, sender, sendResponse)
}
});
function getUrls(request, sender, sendResponse){
var resp = sendResponse;
$.ajax({
url: "http://localhost:3000/urls",
method: 'GET',
success: function(d){
resp({urls: d})
}
});
}
ここで、ajax 呼び出しの前のレスポンスを
getUrls
関数では、レスポンスは正常に送信されますが、ajax呼び出しのsuccessメソッドでレスポンスを送信すると、送信されません。
sendResponse
関数を使用します。
どのように解決するのですか?
から
のドキュメントを参照してください。
chrome.runtime.onMessage.addListener
:
ただし、イベントリスナーから true を返して、非同期でレスポンスを送信したいことを示す場合は、この関数は無効になります(これは sendResponse が呼ばれるまで、相手側にメッセージチャネルを開いたままにしておきます)。
つまり
return true;
の呼び出しの後に
getUrls
を使用して、レスポンス関数を非同期で呼び出すことを示します。
関連
-
JavaScriptの関数この指摘の問題を説明
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】TypeErrorの解決方法。未定義またはヌルをオブジェクトに変換できない
-
[解決済み】React - TypeError: 未定義のプロパティ 'props' を読み取ることができない。
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vueのグローバルがscss(mixin)を導入。
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
vueディレクティブv-bindの使用と注意点
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。