3

Web サイトから Chrome 拡張機能の LocalStorage にデータを送信しようとしています。

私が探している以下の回答を試しましたが、Chrome 29 安定版ではまったく機能していないようです。これが/微調整である理由について誰かアドバイスできますか?

4

2 に答える 2

0

任意の Web ページから拡張機能にデータを送信するには、そのデータを拡張機能に送信する必要があり、拡張機能のバックグラウンド ファイルで、runtime.onMessageExternalを使用して受信する必要があります。

はい、@okan-kocyigit の回答は、拡張機能が外部 Web ページに接続してデータを受信できるようにする方法について、かなりの情報を提供します。最新のドキュメント リンクと最新の構文で更新したいだけです。明確なアイデアを得るには、この最新のchrome 拡張ドキュメントを確認してください。

Web ページから拡張機能にデータを送信する方法

ドキュメントに従って、Webページのjavascriptファイルの下のようにして、拡張機能にデータを送信できます

// The ID of the extension we want to talk to.
var yourExtensionId = "abcdefghijklmnoabcdefhijklmnoabc";

// Make a simple request to send data to your extension:
chrome.runtime.sendMessage(yourExtensionId, {accessToken: "logged user's accessToken"},
   //below callback is optional
   function(response) {
      if (!response.success)
         handleError(url);
});

上記の外部データを Web ページから拡張機能に受信する方法

chrome.runtime.onMessageExternal.addListener(
  function(request, sender, sendResponse) {
    // console.log(sender) will be from where we sending data
    // console.log(request) data object which we send from our webpage
    if (request.accessToken) {
      // now we have the accessToken from our web page
      // so we can use it in our extension by storing into localStorage of extension 
      chrome.storage.sync.set({accessToken: request.chromeAccessToken}, function() {
        // console.log('accessToken value is set to ' + user.accessToken);
      });        
    }

詳細については、この chrome doc リンクruntime.onMessageExternalに従ってください

これを実行するには、manifest.json ファイルにexternally_connectableを追加することを忘れないでください。

"externally_connectable": {
    "matches": ["*://*.yourapp.com/*", "*://yourapp.com//*"]
}
于 2021-02-25T03:10:09.610 に答える