0

Я пытаюсь передать сообщения, переданные из моего Default_popup.js, в сценарий контента, и когда он будет получен в конце сценария контента, попробуйте сохранить данные на хромовом хранилище. но мой код работает неправильно.Передача сообщений не работает в расширении хрома

Этот код был просмотрен 2-3 раза. но теперь он не работает.

manifest.json

{ 
    "manifest_version": 2, 

    "name": "Test", 
    "description": "Automated Test Tool.", 
    "version": "1.0", 

    "browser_action": { 
     "default_icon": "icon.png", 
     "default_popup": "Default_Popup.html" 
    }, 
    "content_scripts": [{ 
     "matches":["http://*/*","https://*/*"], 
     "js":["myscript.js"] } 
    ], 
    "background":{ 
     "scripts":["background.js"] 
    }, 

    "permissions":[ 
     "storage", 
     "notifications", 
     "tabs", 
     "http://*/", 
     "https://*/" 
    ] 
} 

Popup.js

chrome.tabs.getSelected(null, function (tab) { 
    var Jour = {}; 
    Jour.FromStation = $('#txtFromStation').val(); 
    Jour.ToStation = $('#txtToStation').val(); 
    Jour.JourneyDate = $('#datepicker').val(); 
    chrome.tabs.sendRequest(tab.id, { JourneyDetails: Jour }, function handler(response) { 
     alert("Inside Client = " + "Done"); 
    }); 
}); 

myscript.js // Content Script

window.onload = function() { 

    chrome.extension.onRequest.addListener(
     function (request, sender, sendResponse) { 
      alert('request.JourneyDetails.FromStation'); 
      alert(request.JourneyDetails.FromStation); 
      var Jour = {}; 
      Jour.FromStation = request.FromStation; 
      Jour.ToStation = request.ToStation; 
      Jour.JourneyDate = request.JourneyDate; 
      chrome.storage.sync.set({ JourneyDetails: Jour }, function() { 
       console.log('Setting Saved') 
      }); 
      //sendResponse({ counter2: "5" });  
     } 
    ); 
} 
+0

Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкой постановки проблемы не полезны другим читателям –

ответ

1
  1. chrome.tabs.getSelected() устарела, попробуйте использовать chrome.tabs.query() вместо этого? https://developer.chrome.com/extensions/tabs#method-getSelected
  2. chrome.tabs.sendRequest() и chrome.extension.onRequest() устарели, попробуйте использовать chrome.tabs.sendMessage() и chrome.runtime.onMessage() вместо этого? https://developer.chrome.com/extensions/tabs#method-sendRequest, https://developer.chrome.com/extensions/extension#event-onRequest
  3. Включите jQuery в Default_Popup.html? Какие ошибки вы видите?
  4. Элементы с идентификаторами $('#txtFromStation'), $('#txtToStation'), $('#datepicker') в Default_Popup.html? Если вы можете опубликовать содержимое Default_Popup.html, это будет полезно.
Смежные вопросы