Chrome 拡張機能で、選択したテキストを PHP Web ページに投稿しようとしています。この Web サイト ( Chrome 拡張機能: 選択したテキストをキャプチャして Web サービスに送信する方法) で解決された質問は、これを達成するのに大いに役立ちましたが、テキストを投稿する別の方法が必要です。
そこに記載されている XMLHttpRequest の代わりに、コンテンツ スクリプトから非表示の JS フォームを送信したいと考えています。この方法により、データベースにインポートする前にテキストを表示または変更できます。
問題は、バックグラウンドからコンテンツ スクリプトへのトリガーを取得することです。私はすでに他の方法でメッセージを持っているので、関数(応答)を使用することが望ましいです。ただし、「sendMessage」の外では、response.cmd をリッスンできません。そして、「sendMessage」内で、関数をトリガーする response.cmd を取得できません。バックグラウンドスクリプトからまったく新しいメッセージを送信する以外に、これに対する解決策はありますか? 私が参照しているコード:
Background.js
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
if(request.cmd == "createSelectionMenu") {
sendResponse({cmd: "saveText"}); //Do things
}
});
Content_script.js
chrome.extension.sendMessage({ cmd: "createSelectionMenu", data: selectedText },
function(response) {
if(response.cmd == "saveText") {
createForm();
}
}
});